HTML5窗口间同域和跨域的通信
一丶同域下的
1.如果我们要操作iframe里面的元素,首先获取到引入的页面的window。获取iframe里面的window对象。
var oIframe=getElementsByTagName('iframe')[0].contentWindow;
然后就可以对iframe里面的DOM元素进行操作了。
2.window.open()方法
window.open()方法会返回一个被打开页面的window对象。
var newWindow=window.open('xx.html','_blank');
通过newWindow对子页面的DOM元素进行操作。
二丶跨域下的
1.postMessage: 可以通过这个对象给另外一个窗口发送信息。接受窗口的window对象.postMessage()。
同样我们获取iframe下的window对象 var oIframe=getElementsByTagName('iframe')[0].contentWindow;然后发送信息 oIframe.postMessage('参数A','参数B');
参数A:表示发送的数据 参数B表示接受参数的域名(要带上协议)
最后当接受参数页面接受到Mesage信息时,触发事件。可以这样写
window.addEventListener("Message",function(ev){
//ev.data ------这个就是参数A,拿这个数做判断,从而来操作本野蛮窗口;
//ev.origin-----发送数据的源;
},false)
2 字页面操作父级页面
window---指的是当前窗口页面 parent---指的是包含当前页面的父级页面的window对象。 top-----指的是顶级window对象。
三丶
Ajax请求下的跨域解决办法
header('Access-Control-Allow-Origin:http://www.a.com'); //这是允许访问该资源的域 设置如下代码
IE下实现跨域
同域下,XMLHttpRequest
跨域下:oXDomainRequest
事件是onload事件
HTML5窗口间同域和跨域的通信的更多相关文章
- HTML5:使用postMessage实现Ajax跨域请求
HTML5:使用postMessage实现Ajax跨域请求 由于同源策略的限制,Javascript存在跨域通信的问题,典型的跨域问题有iframe与父级的通信等. 常规的几种解决方法: (1) do ...
- html5的postmessage实现js前端跨域訪问及调用解决方式
关于跨域訪问.使用JSONP的方法.我前面已经demo过了.详细见http://supercharles888.blog.51cto.com/609344/856886,HTML5提供了一个很强大的A ...
- HTML5下通过response header解决跨域AJAX cookie的问题
ajax: 通过给Response Header添加Access-Control-Allow-Origin:* 来解决跨域请求,*代表允许所有的跨域请求,或者把*换成指定的域名 cookie: 服务 ...
- 跨域的小小总结:js跨域及跨域的几种解决方法
一.什么是跨域?? js跨域请求就是使用js访问iframe里的不同域名下的页面内容,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同的域的iframe框架中的数据.即只要域名.协议. ...
- 文档通信(跨域-不跨域)、时时通信(websocket)、离线存储(applicationCache)、开启多线程(web worker)
一.文档间的通信 postMessage对象 //不跨域 1.iframe:obj.contentWindow [iframe中的window对象] iframe拿到父级页面的window: pare ...
- 006. SSO 单点登录(同域SSO/跨域SSO)
SSO 单点登录:一次登录,处处登录. 只需在一个登录认证服务下进行登录后,就可访问所有相互信任的应用 同域 SSO 1. session-cookie机制:服务端通过cookie认证客户端. 用户第 ...
- 原生JS封装Ajax插件(同域&&jsonp跨域)
抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢? 最近都在做原生JS熟悉的练习... 用原生Js封装了一个Ajax插件,引入一般的项目,传传数据,感觉还是可行的...简单说说思路,如有不正 ...
- Cookie同域,跨域单点登录(转)
Cookie 同域单点登录 最近在做一个单点登录的系统整合项目,之前我们使用控件实现单点登录(以后可以介绍一下).但现在为了满足客户需求,在不使用控件情况下实现单点登录,先来介绍一下单点登录. 单点登 ...
- 跨域问题解决方案(HttpClient安全跨域 & jsonp跨域)
1 错误场景 今天要把项目部署到外网的时候,出现了这样的问题, 我把两个项目放到自己本机的tomcat下, 进行代码调试, 运行 都没有问题的, 一旦把我需要调用接口的项目B放到其他的服务器上, 就会 ...
随机推荐
- POJ1390Blocks(DP+好题+抽空再来理解理解)
Blocks Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 4744 Accepted: 1930 Descriptio ...
- Struts(View)
案例:http://blog.csdn.net/jiuqiyuliang/article/details/39061305 减少在运用MVC设计模型来开发Web应用的时间. l M —— JavaB ...
- 第2章 ASP.NET MVC(URL、路由及区域)
* { font: 17px/1.5em "Microsoft YaHei" } ASPNET MVC URL.路由及区域 一.URL.路由及区域 一. 配置路由器 1. ...
- python中使用heapq查看最大与最小的N个元素列表
怎么从一个集合中获取最大或最小的N个元素列表? heapq模块有两个函数:nlargest() 和 nsmallest() 可以完美解决这个问题. In [39]: import heapq In [ ...
- 一个用纯CSS实现的下拉菜单
用CSS做下拉列表的特效,代码如下: <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> & ...
- ebay api接口开发基本步骤
因公司项目需求,要进行ebay api开发,网上很多资料已过时,自己记录一下. 准备工作 一.注册账号 1开发者账号注册 https://developer.ebay.com/signin?retur ...
- 总是多次出现 那个同样的 权限错误 _storage_write_error_, 所以一开始就把机器设好setenforce 0
把根目录下的所有文件/目录, 都设为权限777. 好像没有必要把所有的东西, 都设为777, 实际上问题是由selinux引起的, 所以, 只要把相应的目录, 不一定是所有的目录, 只是要写入内容的目 ...
- mysql中Invalid default value for 'stime'问题
在执行mysql数据库时报错 CREATE TABLE `advert_schedule_time` ( `advert_id` int(11) NOT NULL DEFAULT '0' COMMEN ...
- [译]flexbox全揭秘
原文:http://css-tricks.com/snippets/css/a-guide-to-flexbox/ 弹性布局(弹性盒子,现今仍是w3c的候选推荐),目标在于,对于一个容器中的各个项目块 ...
- 欢迎使用CSDN-markdown编辑器
私有变量和函数 在函数内部定义的变量和函数,如果不对外提供接口,外部是无法访问到的,也就是该函数的私有的变量和函数. function Box(){ var color = "blue&qu ...