【发布时间】:2011-07-03 14:24:30
【问题描述】:
我正在使用 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:
edit.html =
<script language="javascript">
function InitializeIFrame() {
document.body.contentEditable = true;
}
</script>
<html>
<body onload="InitializeIFrame();">
</body>
</html>
【问题讨论】:
-
拜托,请使用萤火虫来调试你的代码,警报被耶稣使用了:)
current value你的意思是src值,如果是这样的话,@ 987654327@返回edit.html -
@Val - alert 仍然提醒数据 - 我不时使用它,因为我不能被打扰输入
console.log(whatever);。此外,我确定这只是暂时的? -
好的,
var log = function (str){ console.log(str) }只放一次 :) 然后将其用作log(watever) -
alert 仍然有效并且可以快速输入...我想获取 edit.html 文件的“内容”,而不是 iframe 的 attr(src)。
-
api.jquery.com/contents 它解释了它并在我的 chrome 上工作,我认为你将 keyup 绑定在错误的位置,尝试
$('#text').contents().find('body,html').bind....并让我知道这是否有效,顺便说一句 body,html 是对于跨浏览器:)