Javascript 通过greasemonkey的直接代码注入包括远程JS文件

Javascript 通过greasemonkey的直接代码注入包括远程JS文件,javascript,greasemonkey,Javascript,Greasemonkey,我试图通过greasemonkey将javascript脚本引用直接插入到网页中。不管出于什么原因,它似乎不起作用。我的守则如下: var headID = document.getElementsByTagName("head")[0]; var newScript = document.createElement('script'); newScript.type = 'text/javascript'; newScript.src = 'h

我试图通过greasemonkey将javascript脚本引用直接插入到网页中。不管出于什么原因,它似乎不起作用。我的守则如下:

    var headID = document.getElementsByTagName("head")[0];         
    var newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.src = 'http://cubes-workbench.googlecode.com/files/test.js';
    headID.appendChild(newScript);

任何帮助都将不胜感激。多谢各位

您的代码应该可以工作,除非(选择1个或多个):

  • 文档实际上没有
    。并非所有页面或iFrame都是这样
  • Greasemonkey脚本设置为在文档开始时运行
  • 有一个浏览器插件阻止JS——NoScript、AdBlock、RequestPolicy等
  • 防火墙或其他安全应用程序或设备会阻止该脚本
  • include、exclude或match指令阻止GM脚本在页面或iFrame上按预期触发
  • 还有别的吗
对于初学者,使用标准函数。试试这个:

function addJS_Node (text, s_URL, funcToRun) {
    var D                                   = document;
    var scriptNode                          = D.createElement ('script');
    scriptNode.type                         = "text/javascript";
    if (text)       scriptNode.textContent  = text;
    if (s_URL)      scriptNode.src          = s_URL;
    if (funcToRun)  scriptNode.textContent  = '(' + funcToRun.toString() +
    ')()';

    var targ    = D.getElementsByTagName('head')[0]
                || D.body || D.documentElement;
    targ.appendChild (scriptNode);
}

addJS_Node (null, 'http://cubes-workbench.googlecode.com/files/test.js');


如果这不起作用,发布完整的GM脚本并链接到目标页面。

JS控制台会告诉你什么?有错误吗<代码>控制台日志(头ID)。谷歌“调试JS”谢谢,我想是浏览器插件把我搞砸了。以这种方式包含脚本文件是否允许网页使用它,就像它最初被编码一样?是的。如果你遇到了复杂的问题,提出一个问题,解决方法通常是可行的。