gpt4 book ai didi

jquery 监听 iframe 中的事件

转载 作者:行者123 更新时间:2023-12-03 22:26:22 32 4
gpt4 key购买 nike

我正在使用 jquery 制作一个非常简单的富文本编辑器...我不想使用第三方的。

我需要监听 iframe(同一域等)内的事件,从输入开始。显然我需要经常使用bind()。

这就是我目前所拥有的,它在 IE8 中运行良好(足够令人惊讶),但在 Chrome 中却不行。

<script>
$(function() {
$('#text').contents().bind("keyup keydown keypress", function(e) {
var code = e.keyCode || e.which;
alert(code);
return false;
});
});
</script>

<body>
<iframe id="text" name="text" src="edit.html"></iframe>
</body>

在上面的按键事件中,我还想获取“edit.html”的当前值并用该值更新文本区域...

任何帮助将不胜感激:)

非常感谢

编辑:进一步解释一下,edit.html是一个可编辑的文件,使用“document.body.contentEditable = true;”

-

编辑2:

编辑.html =

<script language="javascript">
function InitializeIFrame() {
document.body.contentEditable = true;
}

</script>
<html>
<body onload="InitializeIFrame();">

</body>
</html>

最佳答案

我似乎记得当我尝试与 iframe(同一域等)通信时遇到了问题。我发现的技巧是在框架内进行绑定(bind)并绑定(bind)到主窗口中的函数。像这样的东西(在edit.html中):

<script>
$('body').bind("keyup keydown keypress", function(e) {
window.parent && window.parent.funcKey && window.parent.funcKey(e);
});
</script>

然后在主页中类似:

<script>
function funcKey(e) {
var code = e.keyCode || e.which;
alert(code);
return false;
}
</script>

我意识到这并不完全符合您尝试的方式,但达到了相同的效果。根据我对 javascript 和 iframe 的理解,实际上与家长沟通比与 iframe 沟通更容易。如果您确实需要双向通信,您可以(继续上面的示例)使用函数 funcKey() 的返回值将数据传回 iframe。

关于jquery 监听 iframe 中的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5105620/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com