2011-04-04 54 views
1

下面的代碼來自我的擴展。它適用於FF 3.6,但不適用於FF 4.0。在FF 4.0中,它僅適用於「about:home」頁面。怎麼了?注入的腳本不會在Firefox 4中顯示警報

// 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); 

} 

回答

0

嘗試創建腳本元素,而不是在span中使用innerHTML。然後創建一個包含要注入的代碼的文本節點,將其附加到腳本,然後將腳本附加到正文。

無論如何你想做什麼?爲什麼不引用外部JS?