蒙面域和跨域JavaScript

时间:2011-12-25 10:22:45

标签: javascript url cross-browser cross-domain masking

所以,我有一个网站fabtab.org 它所有的都是一个iframe,它将我的实际网站嵌入到fab.org.org/fabtab中 (我有这个设置,因为fabtab.org由一些网站提供商托管,我在家里的fab.org.org上托管我的网站,所以提供商只是屏蔽我的网址并将请求转发到我家的网站)

现在在fab.org.org/fabtab上我有一个框架集,所以顶部框架具有网站的标题/导航,底部框架具有网站内容。

我想要做的是在顶部框架中有一个关闭按钮,导致浏览器URL转到底部框架URL指定的URL

我在javascript中这样做了:

function GotoBodyURL()
{
//debugger;
    var parentDocument = parent.document;
    var bodyDocument = parentDocument.getElementById('content');
    parent.window.location.href = bodyDocument.location;
}

所以当您单击顶部框架上的关闭时,此代码将运行。 当我的网站从fab.org.org/fabtab访问时,这是有效的,但当它从fabtab.org运行时,我得到跨域javascript错误。 所以我一直试图做的,但没有成功,设置了document.domain =“fab.org.org”

这是chrome给我的错误:

  

不安全的JavaScript尝试从包含网址http://fabtab.org/的网址访问包含网址http://fab.org.org/fabtab/games/head/show_close=False的框架。域,协议和端口必须匹配。

如果我的顶级框架调用parent.document,那不应该是我的框架集是同一个域的文档,那么应该没有跨域javascript吗?或者是浏览器看到我的网站尝试访问fabtab.org内的fab.org.org并且根本不允许它的实际问题? 如果是这种情况,将修改fabtab.org上的iframe以将域设置为javascript中的fab.org.org吗?

1 个答案:

答案 0 :(得分:0)

我通过在我的网站上使用CNAME条目而不是使用屏蔽转发

解决了这个问题
相关问题