0

以下の JavaScript と HTML コードを使用して、編集可能モードの iframe に onclick イベントをアタッチしようとしています。このコードは、IE8、Safari、および Chrome では正常に機能しますが、Firefox または Opera では機能しません。私は数時間かけて調査し、コードを書き直し、思いつくすべてのアイデアをテストしましたが、すべて成功しませんでした。これまでのところ、8 行目が問題の原因である可能性があることしかわかりませんでした。誰かが私が間違っている可能性があることを教えて、私の問題を解決するのに役立つヒントやコード サンプルを提供してもらえますか? どんな助けでも大歓迎です。

これが私のコードです。

<html>
<head>
<script type="text/javascript">
    function iFrameOn(){
        document.getElementById("wysiwyg").contentWindow.document.designMode = 'On';
    }
    function iFrameEvent(){
        document.getElementById("wysiwyg").contentWindow.document.body.onclick = function(){
            alert('Hello world!');
        }
    }
</script>
</head>
<body onload="iFrameOn()">
<iframe name="wysiwyg" id="wysiwyg" onload="iFrameEvent()"></iframe>
</body>
</html>
4

2 に答える 2

0

これはcontentWindow、IE が最初に実装したプロパティであり、他のブラウザがある時点でサポートを開始した可能性があると思いますが、標準はcontentDocument.

ここの誰かがクロスブラウザー ソリューションを投稿しています。

Chrome: iFrame を取得して本文に挿入する

于 2012-05-30T18:20:52.593 に答える
0

すべてのブラウザーをサポートするにはcontentWindow、 とを使用する必要があります。contentDocument

var frame = document.getElementById('wysiwyg');
if(frame.contentWindow) {
    //
} else if(frame.contentDocument) {
    //
}
于 2012-05-30T18:26:24.190 に答える