0

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

2 回答 2

0

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

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

Chrome:获取 iFrame 并插入正文

于 2012-05-30T18:20:52.593 回答
0

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

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