.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文件的方法..
答案 0 :(得分:5)
一些事情,先轻松一点......
(1)在GM中,you cannot iterate 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
- 或者更好,只需用你想要的JS创建新的<script>
标签。
要阻止这些脚本,您需要一个新的插件。这里有四个可以完成这项工作......最好,但最具侵入性,首先:
所有这些附加组件都可以降低您对糟糕脚本/网站/闪存的漏洞,并加快页面加载速度。