【发布时间】:2011-11-17 02:02:46
【问题描述】:
我知道我无法访问显示来自另一个域的页面的 iframe 中的数据。这很好,但我想检测 iframe 当前是否显示来自我的域或外部的页面。
我的第一次尝试是尝试访问
$('iframe')[0].contentWindow.document
包裹在try {} catch {} 中,如果抛出错误意味着我无法访问它,因此 iframe 页面必须是外部的。
这听起来像是一个完美的解决方案,但问题是 safari 向 javascript 控制台发布了“不安全的 JavaScript 尝试使用 URL 访问框架”消息。
这不仅丑陋,而且可能导致其他或未来的浏览器向用户显示明确的安全警告?
【问题讨论】:
-
您的解决方案似乎完全有效。不要注意来自 Safari 的噪音,这些噪音对最终用户是不可见的。
-
顺便提一下,当您加载 www.apple.com 时,您还会在 Safari 控制台中收到警告。警告通常不用担心(尽管它们可能非常烦人,恕我直言,应该是控制台应该允许您过滤的东西。)
-
thanx,我现在就这样吧。
标签: javascript iframe same-origin-policy