2013-01-02 34 views
5

由於現在太複雜的原因,我有一個ajax調用,它返回一些我想要注入到我的頁面中的動態創建的Javascript。下面的代碼適用於Chrome,但不是在IE:試圖將javascript注入我的頁面

var node = document.getElementsByTagName("head")[0] || document.body; 
    if (node) 
    { 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    //script.innerHTML = json.javascript; 
    var textnode = document.createTextNode(json.javascript); 
    script.appendChild(textnode); 
    node.appendChild(script); 
    } 

在IE中,我得到「SCRIPT65535:到方法或屬性訪問意外的電話」正如你從註釋掉的代碼中看到的那樣,在我嘗試textnode之前,我試着用script.innerHTML插入它。這也適用於Chrome,但在IE中我得到了「SCRIPT600:未知的運行時錯誤」。

有沒有辦法在IE中粘貼一些javascript到DOM中?

+0

你可能最好使用jQuery,因爲你將不必擔心在IE不同的方式實現某些功能。 – scartag

+0

如果你知道用jQuery做這件事的方法,請告訴我。 $(node).html不能比script.innerHTML更好地工作。 –

+0

也許這有助於:http://stackoverflow.com/questions/8610574/inserting-and-executing-conditional-javascript – regulatethis

回答

6

和當然,只要我這後,我發現http://www.phpied.com/dynamic-script-and-style-elements-in-ie/

var node = document.getElementsByTagName("head")[0] || document.body; 
    if (node) 
    { 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.text = json.javascript; 
    node.appendChild(script); 
    }