我有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()
都不会返回任何结果。
答案 0 :(得分:1)
只要两个html网页都托管在同一个域上,选择iframe中的元素就可以正常工作。我尝试了你的代码,它对我来说很好。
但是,如果iframe中的页面托管在不同的域上,则由于Same Origin Policy
,外部框架将无法访问内部框架如果是这种情况,您将在控制台中看到与此类似的错误:
“不安全的JavaScript尝试从具有URL localhost / jqueryIframe / jqueryIframe.html的框架访问具有URL http://www.bing.com/的框架。域,协议和端口必须匹配。”