我有一個Javascript來改變鏈接中的主機以匹配當前的開發/測試服務器。Safari和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://level1.test.foo.com/page.html到http://www.foo.com/page.html引用。
這適用於我測試過的每個瀏覽器,除了Safari(Mac或Win)。我已經搜索並搜索了關於爲什麼,以及我提出的最接近的原因是「同源政策」的信息。
根據我對同源策略的理解,這應該是可行的,因爲一切都在foo.com域之下。難道Safari會更加嚴格,因爲我要去兩級子域(例如level1.test)?
能有人建議,爲什麼這過程不會在Safari工作,或者我怎麼才能得到它在Safari工作?
TIA!