我正在尝试使用下面的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>
答案 0 :(得分:0)
我认为contentWindow
是IE初始实现的属性,其他浏览器可能已经开始支持,但我相信标准是contentDocument
。
此处有人发布了跨浏览器解决方案:
答案 1 :(得分:0)
您必须使用contentWindow
和contentDocument
来支持所有浏览器:
var frame = document.getElementById('wysiwyg');
if(frame.contentWindow) {
//
} else if(frame.contentDocument) {
//
}