我停止在iframe内的输入上停止 ENTER 键。
这可以在同一页面中使用crossbrowser:
$("#input").keypress(function (event) {
console.log(event.which); //works good
if (event.which == 13) {
return false;
}
});
此不在iFrame中停止/捕获按键事件。
$("#my_iframe").contents().keypress(function (event) {
console.log(event.which); // nothing loged
if (event.which == 13) {
return false;
}
});
我错过了什么?有没有一个crossbrowser解决方案?
答案 0 :(得分:3)
在附加事件处理程序之前,您不是在等待加载iframe。
答案 1 :(得分:0)
作为Stephen Thomas的回答的补充,这里有一篇很好的文章总结了问题所在:
Attaching an event to a form's elements inside an iframe with a use of jQuery
但是,如果您尝试使用新代码更新您的小提琴,您很可能会收到错误,这些内容如下:
Blocked a frame with origin "http://fiddle.jshell.net" from accessing a frame with origin "http://jsfiddle.net". Protocols, domains, and ports must match
似乎jsfiddle使用两个不同的服务器进行内部工作,这违反了“同源”策略 - 简而言之,您不应该能够访问来自不同站点的iframe的DOM。作为一种安全措施我猜。虽然我不知道你是否真的能以某种方式跳过它。干杯