包括使用greasemonkey直接代码注入的远程JS文件

时间:2012-03-07 08:04:46

标签: javascript greasemonkey

我试图通过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 个答案:

答案 0 :(得分:2)

您的代码应该有效,除非(选择1或更多):

  • 该文档实际上没有<head>。并非所有网页或iFrame都可以。
  • Greasemonkey脚本设置为在文档开始时运行。
  • 有一个浏览器插件可以阻止JS - NoScript AdBlock RequestPolicy 等。
  • 防火墙或其他安全应用或设备阻止该脚本。
  • 包含排除匹配指令可阻止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脚本并链接到目标页面。