概述
获取/设置当前文档的原始域部分, 用于 同源策略.
语法
var domainString = document.domain; document.domain = string;
例子
// 对于文档 www.example.xxx/good.html, // 以下脚本会关闭窗口 var badDomain = "www.example.xxx"; if (document.domain == badDomain) window.close(); // 这只是一个样例 - window.close()有时候会失效
// 对于URI https://developer.mozilla.org/en/docs/DOM // 以下设置会把变量domain设定为string "developer.mozilla.org" var domain = document.domain;
详述
如果当前文档的域无法识别,那么domain属性会返回null。
在根域范围内,Mozilla允许你把domain属性的值设置为它的上一级域。例如,在 developer.mozilla.org 域内,可以把domain设置为 "mozilla.org" 但不能设置为 "mozilla.com" 或者"org"。
Mozilla 会区分 document.domain
属性 从没有被设定过值 和 被显示的设定为跟该文档的URL的domain一致的值,尽管这两种状况下,该属性会返回同样的值。两个文档,只有在 document.domain
都被设定为同一个值,表明他们打算协作;或者都没有设定 document.domain
属性并且URL的域是一致的 (如何判断一致),这两种条件下,一个文档才可以去访问另一个文档。如果不是因为这个特殊的策略,每一个站点都会成为他的子域的XSS攻击的对象(例如,https://bugzilla.mozilla.org 可以被来自 https://bug*.bugzilla.mozilla.org 站点的bug附件攻击)。
规范
- DOM Level 2 HTML: document.domain (设定该属性是只读的)
- HTML5: document.domain (对该属性行为的设定跟Mozilla的类似)