我使用html5所见即所得的编辑器。编辑器加载dinamically iframe,我想在此编辑器上监视keydown
事件。
加载的iframe看起来像那样:
<iframe class="wysihtml5-sandbox" security="restricted" allowtransparency="true">
<html>
<head><meta charset="UTF-8"></head>
<body marginwidth="0" marginheight="0" id="descriptionkb" contenteditable="true"
class="form- control editor wysihtml5-editor" spellcheck="true"
style="color: rgb(85, 85, 85); cursor: auto; font-family: Arial, Helvetica, sans-serif;
font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal;
line-height: 20px; letter-spacing: normal; text-align: start; text-decoration: none;
text-indent: 0px; text-rendering: auto; word-break: normal; word-wrap: break-word;
word-spacing: 0px; background-color: rgb(255, 255, 255);">
<span id="_wysihtml5-undo" class="_wysihtml5-temp"></span>
</body>
</html>
</iframe>
我要监控keydown
事件的方法是:
$('iframe.wysihtml5-sandbox').contents().on('keydown', '#descriptionkb', function(e){
// execute code on keydown event
});
这适用于chrome和IE,但不适用于mozilla。我尝试了不同的方式来访问事件,但没有一个在mozilla中工作。哪里错了?
答案 0 :(得分:1)
引自https://github.com/xing/wysihtml5/wiki/Events
确保在注册之前完全加载了wysihtml iframe 这样的事件,否则结果可能因浏览器而异。单程 确保iframe完全加载是为了定义函数 以上作为编辑器“加载”功能的回调。