CSDN 移除 APP 打开

自动展开内容,移除讨厌的 APP 内打开

目前为 2019-08-31 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name CSDN 移除 APP 打开
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.2.4
  5. // @description 自动展开内容,移除讨厌的 APP 内打开
  6. // @author sl00p
  7. // @match https://blog.csdn.net/*
  8. // @match https://www.csdn.net/*
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14. // Skill main page
  15. var mainInter = setInterval(function() {
  16. var enter = document.getElementById("guid-btn-enter");
  17. if(enter && enter !== undefined) {
  18. enter.click();
  19. clearInterval(mainInter);
  20. }
  21. }, 50);
  22. var interval = setInterval(function() {
  23. var listNodes = document.getElementsByClassName("container-fluid container-blog app-open-box");
  24. for(var idx = 0; idx < listNodes.length; ++idx) {
  25. listNodes[idx].className = "container-fluid bdinsert"
  26. }
  27. if(listNodes.length === 0) {
  28. clearInterval(interval);
  29. }
  30. }, 50);
  31. // Remove all app download url.
  32. var removeInter = setInterval(function() {
  33. var removeNodes = ["flag col-md-4", "btn_app_link"];
  34. for(var idx = 0; idx < removeNodes.length; ++idx) {
  35. var nodes = document.getElementsByClassName(removeNodes[idx]);
  36. for(var jdx = 0; jdx < nodes.length; ++jdx) {
  37. if(nodes[jdx] !== undefined) {
  38. nodes[jdx].remove();
  39. }
  40. }
  41. }
  42. if(removeNodes.length === 0) {
  43. clearInterval(removeInter);
  44. }
  45. }, 50);
  46. // Use real img url.
  47. setTimeout(function() {
  48. var imgNodes = document.getElementsByClassName("has");
  49. for(var idx = 0; idx < imgNodes.length; ++idx) {
  50. imgNodes[idx].setAttribute.src = imgNodes[idx].attributes["data-src"];
  51. }
  52. document.getElementsByClassName("read_more_btn")[0].click();
  53. }, 50);
  54. // If has pop windows, click cancel.
  55. // FixMe if has better choice.
  56. setInterval(function() {
  57. var popNodes = document.getElementsByClassName("read_more_btn_app_prompt_btn_cancel");
  58. for(var idx = 0; idx < popNodes.length; ++idx) {
  59. popNodes[idx].click();
  60. }
  61. }, 10);
  62. })();