设置document.domain是否适用于所有(大多数)浏览器?

时间:2009-04-13 23:50:07

标签: javascript browser cross-browser

Same Origin Policy Documentation说:

  

同样有一个例外   原产地规则。脚本可以设置   document.domain的值为后缀   当前域名。如果它这样做,   较短的域用于   后续原产地检查。例如,   假设文档中有一个脚本   http://store.company.com/dir/other.html   执行以下语句:

     

document.domain =“company.com”;

     

在   该语句执行,页面   会通过原点检查   http://company.com/dir/page.html。   但是,通过同样的推理,   company.com无法设定   document.domain到othercompany.com。

所有流行的浏览器都支持此功能吗?如果没有,哪些不是?

2 个答案:

答案 0 :(得分:19)

Firefox 2,3,IE6,7,8,Chrome和Safari 2和3,Opera 9都支持document.domain;

其他“较新”的浏览器也可能会出现,但是那些我实际测试过的代码(使用了document.domain)

答案 1 :(得分:10)

文档域应该是小写的,规则是这样的

// Actual domain is "www.foo.com" 
document.domain = "foo.com"; // this is valid 

// Actual domain is "bar.foo.com" 
document.domain = "www.foo.com"; // this is invalid, "bar.foo.com" is not a subdomain of "www.foo.com" 

// Actual domain is "blah.bar.foo.com" 
document.domain = "bar.foo.com" // Ok 
document.domain = "foo.com" // Still ok 
document.domain = "bar.foo.com" // Invalid, you can't change it back to a more specific domain.