我的网站有以下条件:
在Website1中,我有一个名为" Global.Name"的全局变量。
当Website1,Subsite1-1和Subsite1-2在同一个域中时,我可以使用top作为这3个站点的门。 类似的代码如下。
ParentChilds
------------
1
2
3
4
5
6
13
14
15
16

但是,目前的情况是,Website1和subsite1-1& subsite1-2的域名现在不同了。
我现在的状况:
Website1域名:csm.Mysite.com
Subsite1-1和Subsite 1-2域名:csmnew.Mysite.com
现在跨域政策阻止我使用top作为门。
在这种特定情况下,是否有解决方案来获取/设置全局变量? (我的意思是父母和孩子有不同的子域名。)
答案 0 :(得分:0)
我已经编写了以下代码来替换'top'对象。
var mySpace = {};
mySpace.common = {
getDomainTop: function(windowObj) {
var instance = this;
try {
windowObj.frameElement = windowObj.frameElement;
if (windowObj.frameElement === null) {
return windowObj;
} else {
instance.getDomainTop(windowObj.parent);
}
} catch (e) {
return windowObj;
}
}
};
Object.defineProperty(mySpace, "top", {
get: function() {
var instance = this;
try {
top.frameElement = top.frameElement;
return top;
} catch (e) {
return instance.common.getDomainTop(window);
}
}
});
这部分适用于我的病情。 我需要做的另一件事是将'top'替换为'mySpace.top',如下所示
//top.Global.Name = "Jack";
mySpace.top.Global.Name = "Jack";