收集IFRAME的位置

时间:2011-01-25 12:21:58

标签: javascript iframe

我正在构建一个脚本/应用程序(在客户端和代理站点上),它收集有关各种网站元素的信息。

让我烦恼的最后一件事是收集IFRAME的位置。让我更详细地解释一下:

  • 不变:IFRAME的位置不会通过用户互动更改
  • 某些网页使用SRC属性来定义新IFRAME的位置 - 通过脚本定义或在源中手动输入 - 这没关系(没问题)
  • 其他网页使用各种技术如何动态填充IFRAME并且它们不使用IFRAME的SRC属性 - 如果这样的IFRAME的位置在同一域内,这是可以的,否则它是对其他域的不安全访问

我将包含一个HTML代码示例:

<html>
<body>
<a href="http://www.google.com" target="test_iframe">Click here to open an iframe.</a>
<br>
<iframe id="test_iframe" name="test_iframe"></iframe>
</body>
</html>

因此,如果我尝试使用JavaScript,我将获得一个空字符串。

document.getElementById("test_iframe").src

如果我尝试使用以下内容,我将收到安全错误。

document.getElementById("test_iframe").conentDocument.location.href

所以我的问题可以简化为:

  • 是否有任何技术可以收集此类IFRAME的位置哪些内容位于父域之外且IFRAME没有 SRC 属性?

非常感谢您的回答: - )

1 个答案:

答案 0 :(得分:1)

这称为iframejailing。如果指向不同的域,则无法读取或更改页面中的iframe元素。它是浏览器中的内置安全功能。

但是,如果问题中的域可以一起创建iframe代理(谷歌获取更多信息),那么有一些解决方法,我认为在这种情况下不适用。

如果您有更多问题,请回复。