killBDMusicBox_Ad

删除百度音乐盒广告脚本,禁止插播音频广告

目前为 2016-09-01 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name killBDMusicBox_Ad
  3. // @namespace killBDMusicBox_Ad.xinggsf
  4. // @author xinggsf~gmail。com
  5. // @description 删除百度音乐盒广告脚本,禁止插播音频广告
  6. // @license GPL version 3
  7. // @include http://play.baidu.com/*
  8. // @version 2016.8.31
  9. // @encoding utf-8
  10. // @run-at document-start
  11. // @grant unsafeWindow
  12. // ==/UserScript==
  13.  
  14. var r = /(?:^|\W|_)ad(?:$|\W|_)/;
  15. /* 三种实现中1、3都无须定义@run-at、@grant
  16. -function() {
  17. var e, k;
  18. function delAdScript(s) {
  19. e = document.querySelector('script[src$="' + s +'"]');
  20. console.log('del ', e);
  21. e && e.parentNode.removeChild(e);
  22. }
  23. for (k in _MD5_HASHMAP) {
  24. r.test(k) && delAdScript(_MD5_HASHMAP[k]);
  25. }
  26. }(); */
  27. if (unsafeWindow.top !== unsafeWindow.self) return;
  28. function delAdScript(ev) {
  29. var e = ev.target;
  30. if ('SCRIPT' === e.tagName &&
  31. e.hasAttribute('data-requiremodule') &&
  32. r.test(e.getAttribute('data-requiremodule'))
  33. ) ev.relatedNode.removeChild(e);
  34. }
  35. document.addEventListener('DOMNodeInserted', delAdScript, !1);
  36.  
  37. window.onload = function() {
  38. /* 三种实现之三
  39. var c = document.querySelectorAll('script[data-requiremodule]');//[src^="//mu"]
  40. Array.prototype.forEach.call(c, function(e) {
  41. r.test(e.getAttribute('data-requiremodule')) &&
  42. e.parentNode.removeChild(e);
  43. }); */
  44. document.removeEventListener('DOMNodeInserted', delAdScript);
  45. unsafeWindow.showAd = !1;
  46. unsafeWindow.audioAd.disable();
  47. //unsafeWindow.audioAd = null;
  48.  
  49. window.onload = null;
  50. }