Document.domain - Web API 接口参考 编辑

Document 接口的 domain 属性获取/设置当前文档的原始域部分,常用于同源策略

如果成功设置此属性,则原始端口的端口部分也将设置为 null.

语法

var domainString = document.domain;
document.domain = domainString;

当前文档来源的域部分.

异常

安全错误
已尝试在以下情况之一下设置域:
  • 文件在html中的iframe元素里
  • 该文件没有参考上下文
  • 该文档的有效域为null
  • 给定值不等于文档的有效域(或者它不是该域的可注册域后缀)
  • The document-domain Feature-Policy一启用

例子

获取域名

对于URI http://developer.mozilla.org/en-US/docs/Web,此示例将currentDomain设置为字符串“ developer.mozilla.org”。

var currentDomain = document.domain;

关闭窗口

如果文档(例如www.example.xxx/good.html)的域为“ www.example.xxx”,则本示例将尝试关闭窗口。

var badDomain = "www.example.xxx";

if (document.domain == badDomain) {
  // 这只是一个示例 - 有时 window.close() 是没有效果的
  window.close();
}

规范

规范状态备注
HTML Living Standard
Document.domain
Living Standard

浏览器兼容性

BCD tables only load in the browser

此页面上的兼容性表是根据结构化数据生成的。如果您想贡献数据,请查看https://github.com/mdn/browser-compat-data并向我们发送请求请求

Firefox 备注

如果当前文档的域无法识别,那么 domain 属性会返回 null。但这个表现在 Firefox 62 时发生了更改——详见 bug 819475 中的讨论。

根域名范围内,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 附件攻击)。

参见

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:95 次

字数:4941

最后编辑:6 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文