0

iframe 内に何かを document.write しようとしています。それについて質問したところ(iframe外のボタンがクリックされたときにiframeに何かを書き込むことは可能ですか?)、いくつかの回答が得られましたが、iframeタグに「src」属性を追加すると問題が発生します、コードが機能しなくなり、iframeに何も書き込まれません。

以下のコードは機能しません。

<button onclick="test()">Click to write in iframe</button>

<iframe id='ifr' src = "myDocument.html"></iframe>
<script>

function test(){
    var iframe = document.getElementById("ifr"); 
    //contentDocument because IE8 doesn't support contentWindow
    (iframe.contentDocument || iframe.contentWindow.document).write("hello iframe");   
}

</script>

ただし、その「src」属性を削除すると機能します。

なぜそれが起こるのかについてのアイデアはありますか?

4

1 に答える 1

0

document.write ではなく、src 属性を使用できます。

var htmlString="<p>Hello iframe</p>";
var ifr = document.getElementById('ifr');
ifr.src="javascript:'"+htmlString+"'";

htmlString は html または単なるテキストです。

上記の手法は、html5 の srcdoc 属性に相当します。

于 2013-05-16T23:24:45.977 に答える