2013-01-02 61 views
5

Vì lý do quá phức tạp để tham gia ngay bây giờ, tôi có một cuộc gọi ajax trả về một số Javascript được tạo động mà tôi muốn đưa vào trang của mình. Các mã sau đây hoạt động trên Chrome, nhưng không phải trong IE:Đang cố gắng đưa javascript vào trang của tôi

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

Trong IE, tôi nhận được "SCRIPT65535:. Cuộc gọi bất ngờ với phương pháp hoặc truy cập bất động sản" Như bạn có thể thấy từ mã nhận xét, trước khi tôi thử đoạn mã, tôi đã thử chèn nó bằng script.innerHTML. Điều đó cũng làm việc trong Chrome, nhưng trong IE, tôi nhận được "SCRIPT600: Lỗi thời gian chạy không xác định".

Có cách nào để gắn một số javascript vào DOM trong IE không?

+0

Bạn đang có lẽ tốt hơn bằng cách sử dụng jquery vì bạn sẽ không phải lo lắng về các tính năng nhất định thực hiện khác nhau trong IE. – scartag

+0

Nếu bạn biết cách làm điều này với jQuery, vui lòng cho tôi biết. $ (nút) .html không hoạt động tốt hơn script.innerHTML. –

+0

Có thể điều này sẽ giúp: http://stackoverflow.com/questions/8610574/inserting-and-executing-conditional-javascript – regulatethis

Trả lời

6

Và tất nhiên, ngay sau khi tôi đăng bài này, tôi tìm 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); 
    } 
Các vấn đề liên quan