0

我有 2 个 HTML 文档:1 个主文档,其中有一个显示第二个 HTML 页面的 iframe。

我想从父文档访问 iframe 的内容。我试过使用find()and contents(),但它对我不起作用。

这是我的代码:

主要文件

<!DOCTYPE html>
<html>

<head>
<script src="./js/gjquery.js"></script>

<script type="text/javascript">
$(function(){
  $('#123').click(function(){
 alert("Testing...");
 var v = $('#frameDemo').contents().find('body').html();
 alert(v);
});
})
</script>

</head>

<body>
  <button id="123" >mad</button>
  <iframe src="./1.htm" width="80%" height="20%" id='frameDemo'></iframe> 
</body>

iframe 文档

<html>
<head></head>

<body>
<p>Hello <a href="http://ejohn.org/">John</a>, how are you doing?</p>

<table width="700" border="1" id="test"> 
<tr><td>g</td><td>ggg</td></tr>
<tr><td>g</td><td>ggg</td></tr>
<tr><td>g</td><td>ggg</td></tr>
</table>

<p>Hello world!</p>
<div id="someID">Hello world!</div>

</body>
</html>

find()无论我尝试使用哪个选择器,都不会返回任何结果。

4

1 回答 1

1

只要两个 html 页面都托管在同一个域中,在 iframe 中选择元素就可以正常工作。我试过你的代码,对我来说效果很好。

但是,如果 iframe 中的页面托管在不同的域上,由于同源策略,外框将无法访问内框

如果是这种情况,您将在控制台中看到与此类似的错误:

"不安全的 JavaScript 尝试从 URL localhost/jqueryIframe/jqueryIframe.html 的框架访问具有 URL http://www.bing.com/的框架。域、协议和端口必须匹配。 "

于 2013-02-08T17:57:44.567 回答