Iframe onclick在Firefox和Opera中不起作用

Iframe onclick not working in Firefox and Opera

本文关键字:Opera 不起作用 Firefox onclick Iframe      更新时间:2023-09-26

我正在尝试使用下面的JavaScript和HTML代码将onclick事件附加到处于可编辑模式的iframe。该代码在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>

您必须使用 contentWindowcontentDocument 来支持所有浏览器:

var frame = document.getElementById('wysiwyg');
if(frame.contentWindow) {
    //
} else if(frame.contentDocument) {
    //
}
我相信

contentWindow是IE最初实现的属性,其他浏览器可能已经在某个时候开始支持,但我相信标准是contentDocument的。

这里有人发布了一个跨浏览器解决方案:

Chrome:获取iFrame并插入正文