-
window.name+iframe跨域的问题0
在网上搜了蛮多资料,对于当中的一些代码不是很了解,特来iteye请教各位:
原文地址:
http://www.cnblogs.com/rainman/archive/2011/02/21/1960044.html
主JS代码:
var state = 0,
iframe = document.createElement('iframe'),
loadfn = function() {
if (state === 1) {
var data = iframe.contentWindow.name; // 读取数据
alert(data); //弹出'I was there!'
} else if (state === 0) {
state = 1;
iframe.contentWindow.location = "http://a.com/proxy.html"; // 设置的代理文件
}
};
iframe.src = 'http://b.com/data.html';
if (iframe.attachEvent) {
iframe.attachEvent('onload', loadfn);
} else {
iframe.onload = loadfn;
}
document.body.appendChild(iframe);
①:iframe.contentWindow.location = "http://a.com/proxy.html"; 这里为什么需要设置一个空的html,不设置会报错;
②: document.body.appendChild(iframe); 为什么必须写在body不写为什么不行,还是说加载到body完成后调用的onload方法才行;
2014年12月16日 12:31
目前还没有答案
相关推荐
window.name 解决跨域问题的文档 window.name 传输技术是 Thomas Frank 发明的,旨在解决 cookie 的一些劣势,例如每个域名 4 x 20 Kb 的限制、数据只能是字符串、设置和获取 cookie 语法的复杂等等。后来,Kris ...
标题提到的“跨域问题之window.name”是指在处理跨域通信时,开发者利用`window.name`属性来传递数据的一种策略。这种技术主要应用于iframe之间的通信,因为浏览器的同源策略限制了不同源的页面直接交互,但`window....
在实际应用中,需要注意的是,使用window.name进行跨域数据传输时,需要确保数据传输过程中,iframe的src属性总是指向与应用页面同域的页面,这样才能安全地读取window.name中的数据。 总结而言,window.name是一个...
本文将深入探讨如何“完美解决iframe跨域问题”,并介绍其底层的`window.name`转换代理实现。 **一、iframe跨域的基本概念** 1. **什么是iframe**:iframe是一种HTML元素,允许在单个网页中嵌入另一个网页。它通过...
5. window.name + iframe 跨域 6. postMessage 跨域 7. nginx 代理跨域 8. nodejs 中间件代理跨域 9. WebSocket 协议跨域 一、 通过 jsonp 跨域 通常为了减轻 web 服务器的负载,我们把 js、css,img 等静态资源...
4. window.name + iframe 跨域 5. postMessage 跨域 6. 跨域资源共享(CORS) 7. nginx 代理跨域 8. nodejs 中间件代理跨域 9. WebSocket 协议跨域 今天,我们主要讨论 jsonp 跨域和 document.domain + iframe 跨域...
4. 读取`iframe`的`window.name`属性,获取到跨域请求的数据。 5. 完成数据获取后,销毁`iframe`,确保数据不会被后续页面访问。 示例代码展示了如何使用`window.name`进行跨域请求。这段代码基于YUI库,创建了一个...
原文:http://research.microsoft.com/~helenw/papers/subspace.pdfwindow.name 传输技术,原本是 Thomas Frank 用于解决 cookie 的一些劣势(每个域名 4 x 20 Kb 的限制、数据只能是字符串、设置和获取 cookie 语法...
然而,由于浏览器的同源策略限制,当`iframe`加载的页面与包含它的页面不在同一个域名下时,就会遇到跨域问题。这篇博客将深入探讨如何解决`iframe`的跨域问题。 首先,理解同源策略是至关重要的。同源策略是浏览器...
总的来说,`document.domain`配合`iframe`提供了一种解决PHP AJAX跨子域问题的有效途径,使得同一主域下的不同子域能够相互通信。然而,这种方法也存在局限性,比如不支持所有浏览器,以及无法跨完全不同的域。因此...
JavaScript由于同源策略的限制,跨域通信一直是棘手的问题。... window.name 保存数据以及跨域 iframe 静态代理动态传输方案,充分的运用了window.name因为页面的url改变而name不改变的特性。 各种方案
综上所述,`iframe`跨域解决方案主要包括`postMessage`通信、`window.name`数据传递以及`CORS`策略。在实际应用中,开发者应根据具体需求和安全考虑,选择合适的跨域策略。同时,需要注意的是,虽然这些方法能突破...
当我们谈论“window.open父子窗口传值问题”,我们指的是在父窗口通过`window.open`创建了一个子窗口,并需要在两者之间进行数据通信的情况。 首先,让我们了解一下`window.open`的基本语法: ```javascript var ...
分享转载:前端常见跨域解决方案 1、 通过jsonp跨域 ...4、 window.name + iframe跨域 5、 postMessage跨域 6、 跨域资源共享(CORS) 7、 nginx代理跨域 8、 nodejs中间件代理跨域 9、 WebSocket协议跨域
Web 跨域解决方案 ...跨域问题的解决方案有很多,包括 JSONP、CORS 策略、document.domain + iframe 的设置、HTML5 的 postMessage、使用 window.name 来进行跨域等。理解跨域问题的原理和解决方案是非常重要的。
5. **Window.name属性**:由于`window.name`在不同源之间不会被重置,我们可以将`session ID`存储在这个属性中,作为跨域传递的一种方式。 6. **服务器端代理**:最安全且可靠的方法是不在客户端处理跨域`session`...
通过适当的技术实现,如重定向iframe、封装加载逻辑等,可以有效地利用window.name属性解决实际中的跨域数据访问问题。当然,在使用过程中,需要特别关注数据的安全性和隐私保护,避免可能的信息泄露风险。
4. **Window.name属性**:由于`window.name`属性的特性(无论页面是否刷新,只要窗口存在,其值就不会改变),可以通过在IFrame加载完成后将数据存储到`window.name`,然后在父页面中读取。这种方法简单但数据量有限...
要解决iframe跨域调用父页面js方法的问题,我们可以利用以下几种技术: 1. **HTML5的postMessage和message事件**:这是现代浏览器支持的一种跨域通信方式。在iframe中,我们可以使用`window.parent.postMessage...