.js 文件中有带有变量的特定网页。我想重写Greasemonkey加载的URL,但仍然没有得到任何结果。我使用的代码是:
window.addEventListener(
'load',
function() {
allTextareas = document.getElementsByTagName('script');
for (thisTextarea in allTextareas) {
if( allTextareas[thisTextarea].getAttribute('src') == 'some url.js' ){
//allTextareas[thisTextarea].setAttribute('src', 'http://my custom url.js');
}
}
},
true);
但它不起作用。你能帮助我,或者告诉我一种在特定页面上编辑 JS 文件的方法吗?
有几件事,首先是简单的......
(1) In GM, 你不能迭代集合 http://commons.oreilly.com/wiki/index.php/Greasemonkey_Hacks/Getting_Started#Pitfall_.235%3a_Iterating_Collections那样。所以而不是:
for (thisTextarea in allTextareas) {
if (allTextareas[thisTextarea].getAttribute('src') == 'some url.js') {
您必须使用:
for (var J = allTextareas.length - 1; J>=0; --J) {
if (allTextareas[J].getAttribute('src') == 'some url.js') {
etc.
(2)当 Greasemonkey 触发时,这些脚本将已经加载。重写脚本标签源除了导致不稳定的操作之外可能不会做任何事情。
完全阻止这些脚本加载,然后使用 GM 重写它们src
——或者更好的是,创建新的<script>
标签加上你想要的JS。
要阻止这些脚本,您将需要一个新的附加组件。这里有四个可以完成这项工作......最好,但最具侵入性,首先:
- 请求策略 https://addons.mozilla.org/en-us/firefox/addon/requestpolicy/
- 广告拦截加 https://addons.mozilla.org/en-us/firefox/addon/adblock-plus/
- NoScript https://addons.mozilla.org/en-US/firefox/addon/noscript/
- 是的脚本 https://addons.mozilla.org/en-US/firefox/addon/yesscript/
所有这些附加组件都具有减少您对不良脚本/站点/闪存的脆弱性以及加快页面加载速度的优点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)