首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >document.domain = document.domain做什么?

document.domain = document.domain做什么?
EN

Stack Overflow用户
提问于 2009-09-26 13:44:47
回答 4查看 82.7K关注 0票数 94

Orbited ( Comet服务器)的客户端JS组件要求,如果服务器运行在与JS本身不同的域或端口上,则必须执行

代码语言:javascript
运行
复制
document.domain = document.domain;

在加载任何其他JS之前。(请参阅documentation。)

这是做什么的?它看起来像NOOP!(我已经检查过了,这实际上是必要的。)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-06 12:30:57

这段代码实际上是我写的。

当尝试进行跨子域/端口comet时,iframe需要与父帧具有相同的document.domain值。不幸的是,浏览器在内部存储了原始document.domain值的域名和端口。但是javascript中的getter和setter对端口一无所知。所以问题是这样的:如果顶部框架document.domain('example.com', 80),底部框架是('comet.example.com', 80),那么如何让底部框架也是('example.com', 80)呢?

您不能这样做,因为更改主机名部分必然会导致端口被设置为null,所以您最好在底部框架中使用('example.com', null)。因此,顶部框架也需要设置为该值,设置document.domain=document.domain就可以做到这一点。它将浏览器中的内部表示从('example.com', 80)更改为('example.com', null),然后一切都匹配起来,跨端口/子域框架通信工作。

票数 208
EN

Stack Overflow用户

发布于 2010-10-20 21:33:21

浏览器区分(a)未显式设置时的document.domain和(b)显式设置时的document.domain ...即使它们返回相同的值。

显式设置该值表示打算与另一个子域(在同一父域下)上的脚本“合作”。

如果父页面和外部脚本都显式地将document.domain设置为相同的值,则可以绕过同源策略限制,并且每个脚本可以访问彼此上下文的所有(否则受到限制的)对象和属性。

票数 38
EN

Stack Overflow用户

发布于 2009-09-26 14:02:12

我在这个网站上找到了以下信息:devguru。更具体地说,下面是这段话:

此属性设置或返回生成文档的服务器的域名。默认为从中检索文档的服务器的域名,但可以更改为该名称的后缀(并且只能是后缀)。这允许在从不同服务器传递的文档之间共享脚本属性,安全性允许,前提是它们共享相同的域后缀。

在我看来,它允许跨站点脚本为相同的域(即使子域是不同的)。

我假设如果您不接触document.domain,那么js引擎只允许来自相同域的其他javascripts。有了这个属性,您将能够部署到其他子域,就像轨道文档状态一样。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1481251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档