注入的脚本在Firefox 4中不显示警报

时间:2011-04-04 18:45:31

标签: javascript firefox

以下代码来自我的扩展程序。它适用于FF 3.6,但不适用于FF 4.0。在FF 4.0中,它仅适用于页面“about:home”。怎么了?

// set up our page load handler
window.addEventListener(
  "load",
  function () {
    gBrowser.addEventListener("load", examplePageLoad, true);
  },
  false
);

function examplePageLoad(event)
{
    var doc = event.originalTarget;

    if (!(doc instanceof HTMLDocument))
        return;  // ignore images, etc

    if (doc.defaultView.frameElement)
        return;  // ignore frames and iframes

    var jsspan = doc.createElement("span");

    jsspan.innerHTML="<script type=\"text/javascript\">\
\
function test_function() { alert('hello'); }\
test_function();\
\
</script>";
doc.body.appendChild(jsspan);

} 

1 个答案:

答案 0 :(得分:0)

尝试创建脚本元素,而不是在span中使用innerHTML。然后创建一个包含要注入的代码的文本节点,将其附加到脚本,然后将脚本附加到正文。

你还想做什么?为什么不引用外部JS?