我知道我无法访问显示来自另一个域的页面的 iframe 中的数据。这很好,但我想检测 iframe 当前显示的是我域中的页面还是外部页面。
我的第一次尝试是尝试访问
$('iframe')[0].contentWindow.document
包装在 try {} catch {}
中,如果抛出错误则意味着我无法访问它,因此 iframe 页面必须是外部的。
这听起来像是一个完美的解决方案,但问题是 safari 向 javascript 控制台发布了“不安全的 JavaScript 尝试使用 URL 访问框架”消息。
这不仅丑陋,而且可能导致其他或 future 的浏览器向用户显示明确的安全警告?
最佳答案
你可以尝试使用 postMessage ?
如果没有响应,就是外域。
关于javascript:检查 iframe url 是同一个域还是外部域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7417835/