HTML DOM DOCUMENT 对象

定义和用法

domain 属性可返回下载当前文档的服务器域名。

语法

document.domain

说明

该属性是一个只读的字符串,包含了载入当前文档的 web 服务器的主机名。

提示和注释

提示:domain 属性可以解决因同源安全策略带来的不同文档的属性共享问题。

  document.domain

  用来得到当前网页的域名。

  比如在地址栏里输入:

  代码如下:

  javascript:alert(document.domain); //www.jb51.net

  我们也可以给document.domain属性赋值,不过是有限制的,你只能赋成当前的域名或者基础域名。

  比如:

   代码如下:

  javascript:alert(document.domain = "jb51.net"); //jb51.net

  javascript:alert(document.domain = "www.jb51.net"); //www.jb51.net

  上面的赋值都是成功的,因为www.jb51.net是当前的域名,而jb51.net是基础域名。

  但是下面的赋值就会出来"参数无效"的错误:

  代码如下:

  javascript:alert(document.domain = "cctv.net"); //参数无效

  javascript:alert(document.domain = "www.jb51.net"); //参数无效

  因为cctv.net与www.jb51.net不是当前的域名也不是当前域名的基础域名,所以会有错误出现。

  这是为了防止有人恶意修改document.domain来实现跨域偷取数据。

  利用document.domain 实现跨域:

  前提条件:这两个域名必须属于同一个基础域名!而且所用的协议,端口都要一致,否则无法利用document.domain进行跨域

  Javascript出于对安全性的考虑,而禁止两个或者多个不同域的页面进行互相操作。

  相同域的页面在相互操作的时候不会有任何问题。

  比如在:aaa.com的一个网页(a.html)里面 利用iframe引入了一个bbb.com里的一个网页(b.html)。

  这时在a.html里面可以看到b.html里的内容,但是却不能利用javascript来操作它。因为这两个页面属于不同的域,在操作之前,js会检测两个页面的域是否相等,如果相等,就允许其操作,如果不相等,就会拒绝操作。

  这里不可能把a.html与b.html利用JS改成同一个域的。因为它们的基础域名不相等。(强制用JS将它们改成相等的域的话会报跟上面一样的"参数无效错误。")

  所以如果在a.html里引入aaa.com里的另一个网页,是不会有这个问题的,因为域相等。

  有另一种情况,两个子域名:

  aaa.xxx.com

  bbb.xxx.com

  aaa里的一个网页(a.html)引入了bbb 里的一个网页(b.html),

  这时a.html里同样是不能操作b.html里面的内容的。

  因为document.domain不一样,一个是aaa.xxx.com,另一个是bbb.xxx.com。

  这时我们就可以通过Javascript,将两个页面的domain改成一样的,

  需要在a.html里与b.html里都加入:

  代码如下:

  document.domain = "xxx.com";

  这样这两个页面就可以互相操作了。也就是实现了同一基础域名之间的"跨域"。

document.domain的更多相关文章

  1. Both must set "document.domain" to the same value to allow access.

    有两个域名指向我的网站,其中一个域名访问我的网站的话就可以看到日期控件 另一个域名访问我的网站不能看到日期控件, 在EF中使用日期控件,浏览器审查元素后看到,报这个错误“Both must set & ...

  2. document.domain - JavaScript的同源策略问题:错误信息:Permission denied to access property 'document'_eecc00_百度空间

    document.domain - JavaScript的同源策略问题:错误信息:Permission denied to access property 'document'_eecc00_百度空间 ...

  3. document.domain与js跨域的问题

    以前如果要使iframe里面的脚本能访问parent的内容,但iframe和parent的二级域名相同,那一般都会在两者都写上document.domain="xxx.com" 以 ...

  4. document.domain跨域

    原文:[转载]document.domain跨域 document.domain 用来得到当前网页的域名. 比如在地址栏里输入: javascript:alert(document.domain); ...

  5. document.domain的修改问题

    有时候,需要修改document.domain. 典型的情形:http://a.xxx.com/A.htm 的主页面有一个<iframe src="http://b.xxx.com/B ...

  6. 修改document.domain的注意事项(转)

    有时候,需要修改document.domain. 典型的情形:http://a.xxx.com/A.htm 的主页面有一个<iframe src="http://b.xxx.com/B ...

  7. 跨域cors方法(jsonp,document.domain,document.name)及iframe性质

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  8. 跨域问题实践总结! 上(JSONP/document.domain/window.name)

    1. JSONP 首先要介绍的跨域方法必然是 JSONP. 现在你想要获取其他网站上的 JavaScript 脚本,你非常高兴的使用 XMLHttpRequest 对象来获取.但是浏览器一点儿也不配合 ...

  9. js设置document.domain实现跨域

    document.domain 只能实现跨子域的问题 如:xxx.com/a.html 和aaa.xxx.com/b.html 或:bbb,xxx.com/c.html 和ccc.xxx.com/d. ...

随机推荐

  1. Placeholder如何换行

    使用js动态添加标签充,处理换行问题 var placeholder = 'This is a line \nthis should be a new line'; $('textarea').att ...

  2. [deviceone开发]-Star分享的几个示例

    一.简介 这个是star早期分享的几个示例,都非常实用,包括弹出的菜单,模拟支付密码输入等.初学者推荐.也可以直接使用.二.效果图 三.相关下载 https://github.com/do-proje ...

  3. 微信小程序之基础简介

    创建小程序项目后进入编辑环境中会有以下的初始配置文件: 文件夹: 1.pages(存放小程序的页面) 1.index 2.logs (页面里的js文件 以Page()方法开头 所有参数对象都存放在其里 ...

  4. Javascript前端和JAVA后端对加密库的处理实例

    前端加密 Javascript的加解密有开源的库,http://www.oschina.net/p/crypto-js/ 如下是具体的使用例子 <!DOCTYPE html> <ht ...

  5. Xcode 8 日志输出乱码问题

    更新到Xcode 8的同学应该都遇到了这个问题:用Xcode 8运行项目,日志会疯狂的刷,就像下面这种图一样:

  6. Myeclipse开发环境下文件中出现的提示错误与解决方法:The import javax.servlet cannot be resolved?

    1.开发工具:MyEclipse 2.右击项目  >>  Build Path  >>  Add External Archives (Tomcat  >>  li ...

  7. Percona TokuDB

    Percona TokuDB Percona TokuDB 1.     TokuDB说明 2.     TokuDB安装 3.     使用TokuDB 3.1 快速插入和富索引 3.2 聚集sec ...

  8. 介绍几个好用的vs插件

    1.打开扩展管理器. 1.jsenhancement插件. 参考文章:http://www.cnblogs.com/dudu/archive/2011/02/27/vs2010_extension_J ...

  9. Solr实战:使用Hue+Solr实现标签查询

    公司最近在研究多条件组合查询方案,Google的一位技术专家Sam和我们讨论了几个备选方案. Sam的信: 我做了进一步研究,目前有这么几种做法: 1) 最直接粗暴,只做一个主index,比如按行业+ ...

  10. redis持久化RDB和AOF

    Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...