iframe design=on时 oncontextmeun不能触发之问题!
墨初 知识笔记 48阅读
今天,要编写类似编辑器的东西,需要在内联编辑器代码的框架下实现一个自定义的右键菜单:edit。Htmhtmlhead/head脚本语言=' JavaScript '/scriptbodyload=' edit。文件。设计模式=' on'' Table border=' 1' Width 0,255,1)'=' 100% ' ID=edittrtdwidth=' 100% ' Iframe ID=editMarginwidth=0 margin height=0 src=' test . htm ' frame border=1 Width=' 100%。
: rgba(128, 0, 0, 1)">tr></table>
</body>
<html>
bb.htm代码如下:
<html>
<body oncontextmenu="alert('xxxx')" >
aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbb<br>
<input type=text value="xxxx" >
<table width=1200 border=1>
<tr><td>xxxx</td></tr>
<tr><td>aaaa</td></tr>
<tr><td>mmmmm</td></tr>
</table>
</body>
</html>
<body oncontextmenu="alert('xxxx')" >
aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbb<br>
<input type=text value="xxxx" >
<table width=1200 border=1>
<tr><td>xxxx</td></tr>
<tr><td>aaaa</td></tr>
<tr><td>mmmmm</td></tr>
</table>
</body>
</html>
后来发现edit.htm这样写就行了:
<script language="javascript">
function showContextMenu()
{
//child.focus();
alert("Show it!");
return false;
}
edit.document.designMode="on";
edit.document.focus();
edit.document.contentEditable = true;
edit.document.oncontextmenu = showContextMenu;
//edit.document.selection.createRange().setEndPoint("StartToStart",1)
</script>
function showContextMenu()
{
//child.focus();
alert("Show it!");
return false;
}
edit.document.designMode="on";
edit.document.focus();
edit.document.contentEditable = true;
edit.document.oncontextmenu = showContextMenu;
//edit.document.selection.createRange().setEndPoint("StartToStart",1)
</script>
问题其实不大,原因不明。。以后在研究!

标签: