2012-06-12 23 views
12

Chúng tôi cần thêm phần tử javascript bên trong iframe (bên trong cùng một trang web/tên miền để không có sự cố bảo mật nào được đính kèm). Chúng tôi đã nhận nó làm việc nhưng không biết làm thế nào để điền vào nội dung kịch bản betwen thẻ của nó ... làm thế nào bạn sẽ làm điều đó?Phần tử tập lệnh Javascript được đặt bên trong văn bản

var iframe = document.getElementById('iframeX'); 
var iframedocument = iframe.contentWindow.document; 

var script = iframedocument.createElement('script'); 

script.setAttribute('type', 'text/javascript'); 
script.innerText = 'alert(\'hello\')'; //this doesnt work 
script.value= 'alert(\'hello\')'; //this doesnt work either 

var head = iframedocument.getElementsByTagName("head")[0]; 

head.appendChild(script); 

kết quả mong muốn trong tài liệu iframe:

<head> 
    <script type="text/javascript" > 
     alert('hello'); 
    </script> 
</head> 
+0

làm việc http://jsfiddle.net/FU7ZK/ tốt – Esailija

+0

nó dường như làm việc ở đây: http://jsfiddle.net/mRgn7/ –

Trả lời

11

Bạn có thử:

script.setAttribute('type', 'text/javascript'); 
script.innerHTML = 'alert(\'hello\')'; 
+2

Điểm tốt: thiết innerText không phải là tiêu chuẩn. –

+0

Tôi đã thử nghiệm nó: phiên bản OP không hoạt động trên FF nhưng nó hoạt động với innerHTML. –

+0

Tôi có nghĩa là người đã đặt câu hỏi ... Viết tắt trên SO (* Stack Overflow *) là gì? –

3

tôi có vấn đề với script.innerHTML như nó không hoạt động trong IE8-.

script.text = 'alert(\'hello\')'; 

script.text hoạt động tốt hơn cho tôi. Tìm thấy tại: Create script tag in IE8

Các vấn đề liên quan