jquery在iframe中侦听事件
我正在使用jquery创建一个非常简单的富文本编辑器…我不想使用第三方。
我需要在iframe(同一个域等)中监听事件,从键入开始。 显然我需要经常使用bind()。
这就是我目前在IE8中工作得很好(令人惊讶的是),但不是Chrome。
$(function() { $('#text').contents().bind("keyup keydown keypress", function(e) { var code = e.keyCode || e.which; alert(code); return false; }); });
在上面的关键新闻事件中,我还想获得’edit.html’的当前值并使用该值更新textarea …
任何帮助将非常感激 :)
非常感谢
编辑:进一步解释,edit.html是一个使用"document.body.contentEditable = true;"
的可编辑文件"document.body.contentEditable = true;"
–
编辑2:
edit.html =
function InitializeIFrame() { document.body.contentEditable = true; }
我似乎记得当我尝试与iframe(同一个域等)进行通信时遇到问题。 我发现的技巧是在框架内进行绑定并绑定到主窗口中的函数。 像这样的东西(在edit.html中):
然后在主页面中:
我意识到这并不完全符合您尝试的方式,但实现了相同的效果。 根据我对javascript和iframe的理解,在实践中,与父母沟通比与iframe沟通更容易。 如果你真的需要双向通信,你可以(在上面的例子中)使用函数funcKey()的返回值将数据传回iframe。
关于javascript最烦人的事情之一是document.frames [“frameID”]返回与document.getElementById(“frameID”)不同的对象。 (这是你使用$(“#frameID”)时得到的)
这种区别可能是您遇到跨浏览器问题的原因。 您可能需要使用不同的方式来访问iframe内容,直到找到正常工作的方式。