相关疑难解决方法(0)

检测此页面是否为跨域iframe的万无一失的方法

" 检测iframe是否为跨域 "的" 万无一失的方法 "的答案描述了一种方法,用于测试页面上的iframe是指向同域还是跨域页面,解决不同浏览器对跨域策略的解释和避免会中断用户或停止javascript的错误消息.

我正在寻找相当于这个但是 iframe内部的子页面测试它是否跨域iframe 内部.

可以通过全局访问(相同域)有关父级的信息,但有没有可靠的方法来执行此跨浏览器,而不会在检测到父级是跨域时崩溃到错误parentparent.document.location


对于方便的测试,这里是一个jsfiddle中jsbin,在尝试测试是否parent.location.host可访问时崩溃成错误.是否有一种可靠的方法来获取可用的东西,比如false告诉我们这是一个跨域的父级,而不是错误?

是否有一个try...catch变体,它将是强大的跨浏览器?或者可能是一些使用返回值的巧妙技巧parent.postMessage()?(虽然父页面无法编辑)


使用案例:想象嵌入在自己网站上的页面上的可嵌入内容,以及第三方.如果页面位于同域iframe上,我们会隐藏品牌并链接回原始网站,因为用户已在此处.如果他们从第三方iframe访问该页面或直接加载页面,我们会显示品牌和信用,以便他们可以看到内容的来源.


为了澄清,我知道相同的域策略,我不关心跨浏览器域是什么,我只是想写一个简单但可靠的if条件,如if( crossDomainParent() ){ /* do something */}

html javascript iframe cross-browser

24
推荐指数
2
解决办法
2万
查看次数

从iframe访问父窗口(跨域)

我遇到了从iFrame访问父窗口的任务,如果iFrame中的窗口是从另一个域加载的.如果我理解正确,现在所有现代浏览器都允许这样做.所以我在这里找到最好的解决方案.

我将以下一个方式完成此任务:

我有一个叠加内部的iFrame.这将有效,而不是弹出窗口阻止弹出窗口阻止程序阻止我的内容.任务是在iFrame中的文档完成某些工作时重新加载主页面.在一个将加载到iFrame的文档中,我将添加

<div id="is_closed" class="false"></div>
Run Code Online (Sandbox Code Playgroud)

在父窗口中,我将添加函数,该函数将每秒调用一次并检查此div是否仍具有类名"false".当这将改为"true"时,我会打电话给一些回调.

如果您有更好的解决方案,请与我分享.将不胜感激任何帮助.

编辑:这是不可能的,因为它不仅无法从子窗口操纵父窗口,反之亦然.我的想法是从父窗口操纵子窗口.我错了.

html javascript iframe cross-domain

10
推荐指数
3
解决办法
8万
查看次数

标签 统计

html ×2

iframe ×2

javascript ×2

cross-browser ×1

cross-domain ×1