iframe onclick在Firefox和Opera中不起作用

时间:2012-05-30 18:15:37

标签: javascript iframe

我正在尝试使用下面的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>

2 个答案:

答案 0 :(得分:0)

我认为contentWindow是IE初始实现的属性,其他浏览器可能已经开始支持,但我相信标准是contentDocument

此处有人发布了跨浏览器解决方案:

Chrome: Getting iFrame and inserting into body

答案 1 :(得分:0)

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

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