我有一个 Javascript 可以更改链接中的主机以匹配当前的开发/测试服务器。
这是一个例子:
var ndomain = document.domain;
var mydomain = 'www.foo.com';
var alink = document.getElementsByTagName('a');
for (var i = 0; i < alink.length; i++) {
if (alink[i].href.length > 0){
if (alink[i].host.substr(0, mydomain.length) == mydomain){
alink[i].host = ndomain;
}
}
}
这会将对http://www.foo.com/page.html的引用更改为http://level1.test.foo.com/page.html。
这适用于我测试过的所有浏览器,除了 Safari(Mac 或 Win)。我已经搜索并搜索了有关为什么以及我想出的最接近的原因是“同源政策”的信息。
根据我对同源策略的理解,这应该可行,因为一切都在foo.com域下。Safari 会更严格,因为我要去一个二级子域(例如level1.test)?
有人可以建议为什么这个过程在 Safari 中不起作用,或者我如何让它在 Safari 中起作用?
蒂亚!