使用jquery从外部读取iframe中的内容

时间:2013-02-08 17:23:38

标签: jquery html iframe

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

我想从父文档中访问iframe的内容。我尝试过使用find()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()都不会返回任何结果。

1 个答案:

答案 0 :(得分:1)

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

但是,如果iframe中的页面托管在不同的域上,则由于Same Origin Policy

,外部框架将无法访问内部框架

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

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