Javascript 如何在来自其父页面的iframe输入中使用keypress事件?
假设我的HTML网页中有一个iframe,其中包含一部分HTML数据。它有一个搜索文本框的输入。我想,当我在输入中写入内容时,使用onkeypress事件,我可以在span中显示数据 我该怎么做 我读了很多不同的建议,但没有一个对我有效! 请注意,页面位于同一个域中,但我无权访问iframe页面代码! 有人能帮我写吗 以下是我需要的简化代码:Javascript 如何在来自其父页面的iframe输入中使用keypress事件?,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,假设我的HTML网页中有一个iframe,其中包含一部分HTML数据。它有一个搜索文本框的输入。我想,当我在输入中写入内容时,使用onkeypress事件,我可以在span中显示数据 我该怎么做 我读了很多不同的建议,但没有一个对我有效! 请注意,页面位于同一个域中,但我无权访问iframe页面代码! 有人能帮我写吗 以下是我需要的简化代码: $(document).ready(function() { $('#iframeDoc').ready(function(){ $(this).c
$(document).ready(function() {
$('#iframeDoc').ready(function(){
$(this).contents().on('keypress', function(event) {
// add pressed keys to span });
});
$('#iframeDoc').attr("src","JavaScript:'iframe content'");
});
主页HTML:
<html>
<body>
<iframe id="iframeDoc" src="iframepage.html"></iframe>
</body>
</html>
iframepage html:
<html>
<body>
<input type="text" />
<span id="result"></span>
</body>
</html>
一种通用函数,用于捕获iframe中的任何键控事件,例如
$(document.getElementById('frame-id').contentWindow.document).keyup(function(e){
//code here
});
另外,您可以使用类似以下代码的代码访问iFrame中的元素:注意,我向您的输入元素添加了一个ID:
$('#iframe').contents().find('#element_id');
所以把它们放在一起,你能不能做一些类似的事情:
$(document.getElementById('frame-id').contentWindow.document).keyup(function(e){
if($('#iframe').contents().find('#element_id').is(":focus")){
//code here
}
});
我认为对您的代码起作用的示例:
我在当前项目的家长中尝试了这个解决方案,但似乎不起作用。这已经不可能了吗?只是刚刚看到了这一点——如果你能稍微解释一下它是如何不适合你的,我可能会有一个建议。如果这不再可能,我会失望的