`
wenrunchang123
  • 浏览: 251175 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

iframe的document.domain问题

 
阅读更多

    使用iframe引用外部资源是相当便捷的手段,不过仅限于父页面不对iframe进行访问。当我们访问iframe文档中内容,时常会遇到跨域问题,导致对iframe里面的内容不可控,并且使用iframe对页面的性能有很大的影响。今天笔者遇到一个相当郁闷的问题,关于iframe的document.domain的设置。

 

有两个页面,一个是a.html为父页面,一个是b.html为iframe页面,域名都是domain.xx.com。

一般情况下,这种设置在各大浏览器都成功。

document.domain = "domain.xx.com";

document.domain = "xx.com";

 

但问题就来料,如果你把上面的两个语句顺序倒一下:

document.domain = "xx.com";

document.domain = "domain.xx.com";

以上两句代码,在浏览器中会报错。

 

由此看出,域可以由domain.xx.com修改为xx.com,所有浏览器都支持,而不能

从xx.com修改为domain.xx.com

分享到:
评论

相关推荐

    js设置document.domain实现跨域的注意点分析

    例如,如果当前页面是`***`,而要访问的iframe页面是`***`,则两个页面中都应添加`document.domain="***";`。 - 设置后,这两个页面都认同它们属于`***`域,从而实现了跨域操作。 #### 注意事项 - 跨域操作增加了...

    Web前端黑客技术揭秘(Web2Hack.org)_(i)7.6.5 跨子域:document.domain技巧1

    `attack.htm`是攻击页面,其JavaScript代码设置了`document.domain='com'`,并创建了一个iframe指向`user.proxy.com/proxy/proxy.htm`,在iframe加载完成后注入`poc.js`。`proxy.htm`中也设置了`document.domain='...

    PHP ajax跨子域的解决方案之document.domain+iframe实例分析

    总的来说,`document.domain`配合`iframe`提供了一种解决PHP AJAX跨子域问题的有效途径,使得同一主域下的不同子域能够相互通信。然而,这种方法也存在局限性,比如不支持所有浏览器,以及无法跨完全不同的域。因此...

    通过伪协议解决父页面与iframe页面通信的问题

    在某些情况下,开发者可能需要在父页面中设置`document.domain`属性,例如当父页面和子页面(iframe)属于同一顶级域名但二级域名不同时,设置`document.domain`可以使它们视为同源。然而,当父页面显式设置了`...

    跨域解决方案

    <iframe id="iframe" src="http://child.domain.com/b.html"></iframe> document.domain = 'domain.com'; ``` 在子窗口中也需要设置 document.domain: ``` document.domain = 'domain.com'; ``` 这样,我们...

    Javascript中document.referrer隐藏来源的方法

    实际上,还有其他的技巧和方法可以尝试,比如使用JavaScript设置document.domain属性或者服务器端进行HTTP头信息的控制等。这些技术的实现和应用需要结合具体的业务场景和技术需求进行详细的研究。

    完美解决iframe跨域问题

    3. **修改`document.domain`**:如果父页面和子页面的顶级域名相同,但子域名不同,可以尝试设置`document.domain`为相同的顶级域名,从而解除跨域限制。但这种方法只适用于部分情况,且有安全隐患。 4. **JSONP...

    javascript跨域访问的方法.docx

    修改`document.domain`来跨子域 **1. 基于iframe实现跨域** 这种方法适用于两个页面的域具有共同的基础域,例如aa.xx.com和bb.xx.com。它们必须使用相同的协议(如http或https)和端口(如80或443)。在两个页面...

    safari,opera嵌入iframe页面cookie读取问题解决方法

    3. **使用`document.domain`设置相同域名**:如果父页面和iframe都属于同一顶级域名的不同子域,可以通过设置`document.domain`属性来消除同源限制。例如,`parent.example.com`和`child.example.com`可以都设置`...

    iframe跨域互相调用资源

    为了解决浏览器兼容性问题,尤其是对于IE8及更低版本,可能需要使用旧的`window.frames`属性或者`document.domain`的设置。对于`window.frames`,可以通过索引访问`iframe`的窗口对象,然后调用其方法。`document....

    JS跨域请求解决方案.docx

    <iframe id="iframe" src="http://subdomain.domain.com/b.html"></iframe> document.domain = "domain.com"; var iframe = document.getElementById('iframe'); iframe.onload = function() { var ...

    前端解决跨域问题的8种方案.docx

    1. **`document.domain` + iframe(仅限主域相同的情况)** 当两个页面的主域相同但子域不同时,可以通过设置`document.domain`来实现跨域访问。例如,在`www.a.com/a.html`页面中,可以通过以下方式设置`document...

    iframe跨域调用父窗口js.zip

    2. **设置`document.domain`属性**:如果iframe和父页面都处于相同的顶级域名下(比如都是`example.com`,但子域名不同),可以设置`document.domain`来消除跨域限制。但这种方法仅限于同一顶级域名下的子域之间,不...

    iframe高度随子页高度变化

    可能需要对IE8等老版本浏览器做特殊处理,例如使用`document.domain`来解除同源策略限制,或者使用`jQuery`等库来处理兼容性问题。 5. **响应式设计**:在响应式布局中,`iframe`的高度调整可能需要考虑不同的屏幕...

    iframe 跨域

    - `crossdomain.xml`:如果是XML文件,可能是服务器上用于CORS的配置文件,定义了哪些源可以访问该服务器资源。 5. 跨域安全问题:虽然跨域技术方便了数据交换,但也带来了一些安全问题,例如XSS(跨站脚本攻击)...

    父窗口调用iframe子窗口方法

    var iframeDocument = iframe.contentDocument || iframe.contentWindow.document; ``` 3. **调用iframe中的方法**: 现在我们有了`iframe`的`window`对象,就可以调用其中定义的函数了。假设`iframe`中的一个JS...

    iframe跨域解决方案

    为了解决这一问题,HTML5引入了一种叫做跨文档消息传递(Cross-document messaging)的技术,允许不同源的窗口(包括`iframe`)通过`window.postMessage()`方法发送和接收消息。使用`postMessage`,父页面可以向`...

    「JavaScript」JS四种跨域方式详解

    修改`document.domain`适用于同一主域名下的跨子域通信;`window.name`适合页面跳转或`<iframe>`场景;`window.postMessage`则提供了一种安全可控的跨域通信方式,尤其适用于HTML5应用。根据实际需求选择合适的方法...

    Ajax跨域传输参数

    可以将book.aa.com用iframe添加到 www.aa.com的某个页面下,在www.aa.com和iframe里面都加上document.domain = "aa.com",这样就可以统一域了,可以实现跨域访问。就和平时同一个域中镶嵌iframe一样,直接调用里面的...

Global site tag (gtag.js) - Google Analytics