Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在来自其父页面的iframe输入中使用keypress事件?_Javascript_Jquery_Html_Iframe - Fatal编程技术网

Javascript 如何在来自其父页面的iframe输入中使用keypress事件?

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

假设我的HTML网页中有一个iframe,其中包含一部分HTML数据。它有一个搜索文本框的输入。我想,当我在输入中写入内容时,使用onkeypress事件,我可以在span中显示数据

我该怎么做

我读了很多不同的建议,但没有一个对我有效! 请注意,页面位于同一个域中,但我无权访问iframe页面代码! 有人能帮我写吗

以下是我需要的简化代码:

$(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
   }       
});
我认为对您的代码起作用的示例:


我在当前项目的家长中尝试了这个解决方案,但似乎不起作用。这已经不可能了吗?只是刚刚看到了这一点——如果你能稍微解释一下它是如何不适合你的,我可能会有一个建议。如果这不再可能,我会失望的