1

我是否可以从 iframe 获取域,例如:

<iframe src="http://www.google.com/search&etc...so on"></iframe>

所以通过使用javascript,我只能得到“google.com”并将iframe重定向到空白。以下是任何希望帮助我的人的想法(在 python 编码中,idk 是否正确,但只是一个想法)。

for iframe in page:
if re.search("(google.com)", iframe, re.IGNORECASE):
iframe = iframe.replace('<iframe src=""></iframe>')
4

3 回答 3

0

您可以搜索页面中的所有 iframe,然后获取以 google.com 作为来源的 iframe:

var iFrames = document.getElementsByTagName("IFRAME");
for (var i = 0; i < iFrames.length; i++) {
    if (iFrames[i].src.indexOf("google.com") != -1) {
        // do here whatever you want, for example clearing the iframe's src:
        iFrames[i].src = "";
    }
}
于 2012-07-27T07:06:15.690 回答
0
​var iFrames = document.getElementsByTagName('IFRAME');
for (var iFrameIndex = 0; iFrameIndex < iFrames.length; iFrameIndex++) {
    // Match Google iFrames
    if (iFrames[iFrameIndex].src.test(/google\.com/)) {
        // Set such iFrames src to a blank string
        iFrames[iFrameIndex].src = '';
    }
}

​ 这是一个有效的 JSFiddle

于 2012-07-27T07:04:43.740 回答
0

根据您的标记,我的回答与 JavaScript 有关。是的,可以获得域名。然而,有一个非常重要的规则。如果 iframe 是 1) 与父页面不同的域,并且2) iframe 在第一次加载后更改为不同的页面/域......那么您将看不到新页面/域。

假设您有一个 index.html 页面,yourdomain.com并且您想要一个加载 Google 的 iframe:

<!doctype html>
<html>
<body>
  <div><iframe src="http://www.google.com"></iframe></div>
</body>
</html>

当您的索引页面首次加载时,您将能够看到域是 google.com。但是,如果用户执行 Google 搜索,您将无法看到新 URL。这是浏览器的一项安全功能,您无法在 iframe 中看到任何外部域的活动。此外,如果有人点击谷歌搜索结果甚至是另一个域,您将看不到新域。该 URL 将始终显示为http://www.google.com。希望有帮助。

我看到其他人已经发布了示例......但我想我会放一个 jQuery 示例,因为它可能会帮助那里的人:

$('iframe[src*="google.com"').attr('src', '');
于 2012-07-27T07:13:33.393 回答