Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:检查iframe url是否是相同的域或外部内容_Javascript_Iframe_Same Origin Policy - Fatal编程技术网

javascript:检查iframe url是否是相同的域或外部内容

javascript:检查iframe url是否是相同的域或外部内容,javascript,iframe,same-origin-policy,Javascript,Iframe,Same Origin Policy,我知道我无法访问iframe中显示来自另一个域的页面的数据。这很好,但我想检测iframe当前是否显示来自我域的页面或外部内容 我的第一次尝试是尝试访问 $('iframe')[0].contentWindow.document 包装在try{}catch{}中,如果抛出错误,则意味着我无法访问它,因此iframe页面必须是外部的。 这听起来是一个完美的解决方案,但问题是safari向JavaScript控制台发布了一条“不安全的JavaScript尝试使用URL访问框架”消息。 这不仅难看,

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

我的第一次尝试是尝试访问

$('iframe')[0].contentWindow.document
包装在
try{}catch{}
中,如果抛出错误,则意味着我无法访问它,因此iframe页面必须是外部的。 这听起来是一个完美的解决方案,但问题是safari向JavaScript控制台发布了一条“不安全的JavaScript尝试使用URL访问框架”消息。 这不仅难看,而且可能会导致其他或未来的浏览器向用户显示明确的安全警告?

如果这是您的HTML:

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

然后使用它与您的域进行比较?

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

parent.frames[1].location.href;
你能试试使用吗


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

您的解决方案似乎完全有效。不要注意Safari发出的噪音,因为终端用户看不到。顺便说一句,当您加载www.apple.com时,Safari控制台中也会出现警告。警告通常不需要担心(尽管它们可能非常烦人,而且,IMHO,应该是控制台应该允许您过滤的东西。)thanx,我现在就不说了。
src
总是返回初始值,但是iframe页面肯定会因为以下链接而改变/在iframe中提交表单应该仍然足以知道它是否在同一个域中,除非您通过在iframe中的某个链接以某种方式在自己的域中结束,否则初始值应该可以,不是吗?有可能吗?这会导致安全错误。您甚至无法检查location对象中是否存在键“href”或“origin”或任何其他内容:(
parent.frames[1].location.href;