问题是,您提供的代码将不起作用,因为<iframe>
元素必须具有“src”属性,例如:
<iframe id="uploads" src="http://domain/page.html"></iframe>
用起来没问题.contents()
获取内容:
$('#uploads).contents()
将使您可以访问第二个 iframe,但如果该 iframe 位于“内部”http://domain/page.html
记录加载的#uploads iframe。
为了测试我的说法是否正确,我创建了 3 个名为 main.html、iframe.html 和 noframe.html 的 html 文件,然后选择了 div#element:
$('#uploads').contents().find('iframe').contents().find('#element');
由于您需要等待 iframe 加载资源,因此该元素将存在一段时间不可用。此外,所有 iframe 必须位于同一域中。
希望这可以帮助 ...
这是我使用的 3 个文件的 html(将“src”属性替换为您的域名和 url):
主要.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>main.html example</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(function () {
console.log( $('#uploads').contents().find('iframe').contents().find('#element') ); // nothing at first
setTimeout( function () {
console.log( $('#uploads').contents().find('iframe').contents().find('#element') ); // wait and you'll have it
}, 2000 );
});
</script>
</head>
<body>
<iframe id="uploads" src="http://192.168.1.70/test/iframe.html"></iframe>
</body>
iframe.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>iframe.html example</title>
</head>
<body>
<iframe src="http://192.168.1.70/test/noframe.html"></iframe>
</body>
无框架.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>noframe.html example</title>
</head>
<body>
<div id="element">some content</div>
</body>