javascript:检查 iframe url 是同一个域还是外部域

标签 javascript iframe same-origin-policy

我知道我无法访问显示来自另一个域的页面的 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/

相关文章:

javascript - XMLHttpRequest无法加载XXX No'Access-Control-Allow-Origin' header

javascript - jQuery.each() 在 Firefox 和 IE 中不起作用?

javascript - 使用 Jquery 获取 JSON 属性

javascript - 设置 iframe 的样式,然后使其可见

javascript - 如何在用户单击内部时自动展开 DIV 元素中的 IFrame?

javascript - 与 iFrame 中运行的 JavaScript 进行通信

javascript - JavaScript 是一个开源项目吗?

javascript - 使用 jQuery 通过按钮加载 HTML 文件

html - 弹出div在IE11中隐藏在iframe下