Javascript Adblocker (Firefox only)

Remove pop-ups/ in-video ads : blogtruyen|vnsharing|hayhaytv

当前为 2014-10-10 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Javascript Adblocker (Firefox only)
  3. // @description Remove pop-ups/ in-video ads : blogtruyen|vnsharing|hayhaytv
  4. // @version 1.705
  5. // @run-at document-start
  6. // @grant GM_addStyle
  7. // @include *blogtruyen.com*
  8. // @include *hayhaytv.vn*
  9. // @include *vnsharing.net*
  10. // @include *vozforums.com*
  11. // @namespace ...
  12. // ==/UserScript==
  13.  
  14. var hostname = location.hostname;
  15. var fuck = 0;
  16. switch(hostname) {
  17. case "www.hayhaytv.vn":
  18. fuck = 1;
  19. checkForBadJavascripts ( [[ false, /vod\/info/, replaceJS ]] );
  20. window.addEventListener('load', function(){ $("#btn_xemngay").click()});
  21. break;
  22. case "jj.hayhaytv.vn":
  23. fuck = 2;
  24. window.addEventListener('load', function(){ $(".banner_player_img, .mh-player-info").css("display", "none"); startMainPlayer(); });
  25. break;
  26. case "blogtruyen.com":
  27. fuck = 3;
  28. checkForBadJavascripts ( [[ false, /popunder/, replaceJS ]] );
  29. break;
  30. case "vnsharing.net":
  31. fuck = 4;
  32. checkForBadJavascripts ( [[ false, /btpop/, replaceJS ]] );
  33. break;
  34. default:
  35. break;
  36. }
  37.  
  38. function replaceJS (scriptNode) {
  39. var scriptSrc = scriptNode.textContent;
  40. switch(fuck) {
  41. case 1: scriptSrc = scriptSrc.replace ("vod", "shit"); break;
  42. case 3: scriptSrc = scriptSrc.replace ("pop", "shit"); break;
  43. case 4: scriptSrc = scriptSrc.replace ("pop", "shit"); break;
  44. default: break;
  45. }
  46. addJS_Node (scriptSrc)
  47. }
  48.  
  49. GM_addStyle("[style*=wrap] > STRONG {margin-right:100px}")
  50.  
  51. function checkForBadJavascripts (controlArray) {
  52. if ( ! controlArray.length) return null;
  53. checkForBadJavascripts = function (zEvent) {
  54. for (var J = controlArray.length - 1; J >= 0; --J) {
  55. var bSearchSrcAttr = controlArray[J][0];
  56. var identifyingRegex = controlArray[J][1];
  57. if (bSearchSrcAttr) {
  58. if (identifyingRegex.test (zEvent.target.src) ) {
  59. stopBadJavascript (J);
  60. return false;
  61. }
  62. }
  63. else {
  64. if (identifyingRegex.test (zEvent.target.textContent) ) {
  65. stopBadJavascript (J);
  66. return false;
  67. }
  68. }
  69. }
  70.  
  71. function stopBadJavascript (controlIndex) {
  72. zEvent.stopPropagation ();
  73. zEvent.preventDefault ();
  74.  
  75. var callbackFunction = controlArray[J][2];
  76. if (typeof callbackFunction == "function")
  77. callbackFunction (zEvent.target);
  78. zEvent.target.parentNode.removeChild (zEvent.target);
  79. controlArray.splice (J, 1);
  80. if ( ! controlArray.length) {
  81. window.removeEventListener (
  82. 'beforescriptexecute', checkForBadJavascripts, true
  83. );
  84. }
  85. }
  86. }
  87.  
  88. window.addEventListener ('beforescriptexecute', checkForBadJavascripts, true);
  89.  
  90. return checkForBadJavascripts;
  91. }
  92.  
  93. function addJS_Node (text, s_URL, funcToRun) {
  94. var D = document;
  95. var scriptNode = D.createElement ('script');
  96. scriptNode.type = "text/javascript";
  97. if (text) scriptNode.textContent = text;
  98. if (s_URL) scriptNode.src = s_URL;
  99. if (funcToRun) scriptNode.textContent = '(' + funcToRun.toString() + ')()';
  100.  
  101. var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
  102. targ.appendChild (scriptNode);
  103. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址