如何使用JavaScript获取iFrame的src内容?

7

我有一个 iFrame,其内容在另一个 iFrame 内。我想使用 JavaScript 获取内部 iFrame 的 src 内容。应该如何实现?


你正在尝试的操作是否符合同源策略的规定? - derobert
我期望的是,如果我在一个iframe中有另一个iframe,那么如何获取内部iframe的src? - Paulraj
页面是否在内部iframe上,且与您的页面位于同一主机上? - Gareth
是的,两个页面都在同一个主机和同一个根目录下。 - Paulraj
您是在询问src属性的值还是页面内容的值? - Shane Tomlinson
仅返回 iframe 内容的值。 - Paulraj
4个回答

5

外部页面:

<html>
<body>
<iframe id="ifr1" src="page1.htm"></iframe>
<iframe id="ifr2" src="http://www.google.com"></iframe>
</body>
</html>

page1.htm:

<html>
<body>
<script type="text/javascript">
document.write(parent.document.getElementById('ifr2').src);
</script>
</body>
</html>

1
<body>
<div id="f1" style="padding-left:5px;">..</div>

<script type="text/javascript">
document.getElementById("f1").innerHTML = '<iframe src="frame.php or html" width="200" height="100" frameborder="0" scrolling="no"></iframe>';
</script>
</body>
</html>


我不是很专业,但这些是关于你的脚本提示,你可以修改并测试你的页面。


1

iframeInstance.contentWindow.document - 这个文档从 SRC URL 加载。 而相反,要从内部文档返回父文档,请使用: parent.document


我获取了外部iframe的src。如果我想要内部iframe的src,我该怎么办?你能给我一个关于我的问题的例子吗?谢谢。 - Paulraj

0
在桌面应用程序的特殊用例中,需要在浏览器引擎中执行脚本以填写一些由数据库驱动内容不受监管的输入。
步骤A)获取通常显示为另一个iframe内的iframe的页面源。
var newUrl = document.getElementById('iframeNestedFirst').contentWindow.document.getElementById('iframeExternalNestedWithinFirst').src;

步骤B)在新页面上打开包含运行时令牌的检测到的URL

window.open(newUrl).focus();        or       window.open(newUrl,'_blank').focus(); 

现在,当作为一个新文档加载时,您可能会访问不同域的内容 - 如预期的iframe- DOM。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接