Javascript:检查是否iframe url是相同的域名或外部的东西

javascript: check if iframe url is same domain or something external

本文关键字:域名 外部 检查 是否 iframe url Javascript      更新时间:2023-09-26

我知道我无法访问显示来自另一个域的页面的iframe中的数据。这是非常好的,但我想检测,是否iframe当前显示一个页面从我的域或外部的东西。

我的第一个尝试是访问

$('iframe')[0].contentWindow.document

包装在try {} catch {}中,如果抛出错误,则意味着我无法访问它,因此iframe页必须是外部的。这听起来像是一个完美的解决方案,但问题是safari会向JavaScript控制台发送一个"不安全的JavaScript试图使用URL访问框架"的消息。这不仅丑陋,而且可能导致其他或将来的浏览器向用户显示显式的安全警告。

你可以尝试使用postMessage吗?

如果没有响应,则为外部域

如果这是你的HTML:

<iframe src="http://www.google.com" width="100%" height="300" id='iframe'>
  <p>Your browser does not support iframes.</p>
</iframe>

不就这么简单吗:

var iframeEl = document.getElementById('iframe')
var src = iframeEl.src;

,然后用它来比较你的域名?

为什么不检查从iframe的href属性是否与您的域相同?

parent.frames[1].location.href;