跨域

问题:在一个网站上想要接收其他网站发过来的消息

概念

跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。

http://www.nihao.com/index.html 调用 http://www.nihao.com/server.php (非跨域)http://www.nihao.com/index.html 调用 http://www.nihaoma.com/server.php (主域名不同:nihao/nihaoma,跨域)http://abc.nihao.com/index.html 调用 http://def.nihao.com/server.php (子域名不同:abc/def,跨域)http://www.nihao.com:8080/index.html 调用 http://www.nihao.com:8081/server.php (端口不同:8080/8081,跨域)http://www.nihao.com/index.html 调用 https://www.nihao.com/server.php (协议不同:http/https,跨域)
localhost   调用 127.0.0.1 跨域

跨域:协议、域名、端口其中任意一个不同。
同源:协议、域名、端口均相同,

案列

b页面接受a页面发送过来的信息

//a.html a页面下的代码
var param = {act_name:"comfirmAddr",search_name: $("#search_input").val(),data:selAddList
}
var json = JSON.stringify(param);
console.log(json);
//第二个参数是目标域:http://www.nihao.com/a.html
window.opener.postMessage(json,'*');
window.close();
//b.html b页面下的代码 b页面接受a页面发送过来的信息
HTML:
<el-button onclick="goToB" >打开b.html的页面</el-button>
JavaScript:
function goToB(){var  url = "http://www.ifine.com/b.html"window.open(url, "打开b.html的页面", "height=" + screen.height + ",width=" + screen.width + ",menubar=no,scrollbars=no,resizable=yes,toolbar=no,status=no,left=100,top=100") ;
}
window.addEventListener('message', receieveMessage, false);
function receieveMessage(event)
{try{var param = event.data;var json = window.JSON.parse(param);var act_name = json.act_name;if(act_name == 'comfirmAddr'){vueObject.addrKey = json.search_name;var v_data = json.data;vueObject.addresArr = v_data;}}catch(e){alert("异常名字:"+e.name);alert("异常号:"+e.number);alert("异常的描述信息:"+e.description);alert("异常的错误信息:"+e.message);}
}

事件监听

window.addEventListener(type, function, true/false);
type:事件的类型(如“click”或“mousedown”或“message”或“resize”)。
function:事件触发后调用的函数。
true/false:true:先捕获 、false:先冒泡

移除监听事件

window.removeEventListener(“click”, function);

跨域window.opener相关推荐

  1. window.opener方法的使用 js跨域

    2019独角兽企业重金招聘Python工程师标准>>> 最近公司网站登陆加入了第三方登陆.可以用QQ直接登陆到我们网站,在login页面A中点QQ登陆时,调用了一个window.op ...

  2. DOM跨域的三种解决方案:document.domain、window.name、window.postMessage

    文章目录 同域访问 document.domain 相同二级域名之间的跨域 相同域名,不同端口之间的跨域 window.name window.postMessage 同域访问 浏览本篇文章之前,需要 ...

  3. JS中的跨域问题及解决办法汇总

    一.什么是跨域? 在了解跨域之前,首先要知道什么是同源策略(same-origin policy).简单来讲同源策略就是浏览器为了保证用户信息的安全,防止恶意的网站窃取数据,禁止不同域之间的JS进行交 ...

  4. iframe子页面ajax报错,iframe跨域踩坑

    前言 工做中,有些系统是利用的iframe.有一次忽然遇到了一个使人费解的跨域报错,没有发请求,却报了"Error:Blocked a frame with origin...from ac ...

  5. 跨域?拒绝说概念(内含demo)

    文章列出解决方案以及对应的demo,拒绝说概念,不在稀里糊涂. 什么情况出现跨域? 协议不同 域名不同 端口不同 跨域解决方案 1.同一个主域下不同子域之间的跨域请求 - document.domai ...

  6. 「跨域」利用node.js实践前端各种跨域方式(上)

    前言 常言道,"读万卷书,不如行万里路".技术的学习也是如此,唯有实践才能更清楚的明白原理和加深印象,因此本文会利用node.js对前端的各种跨域方式进行实践,强烈建议一步一步跟着 ...

  7. jsonp 跨域原理详解

    转载至:http://zha-zi.iteye.com/blog/1975116 JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制 ...

  8. 前端常见跨域问题解决方案

    前端常见跨域解决方案(全) 什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的. 广义的跨域: 1.) 资源跳转: A链接.重定向.表单提交 2.) 资源嵌入: & ...

  9. js中几种实用的跨域方法原理详解

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

最新文章

  1. 超全 Python IDE 武器库大总结,优缺点一目了然!
  2. 【基础部分】之apache配置与应用
  3. 终于找全啦!一二线城市知名互联网公司名单!对着找就对了
  4. 编写图形界面程序,显示一个红色反弹球的程序,当该球撞击Applet边框时,它应从边框弹回并以相反方向45°运动。
  5. sklearn自学指南(part3)--使用手册的目录
  6. idea使用svn拉取项目代码_IntelliJ IDEA 14 拉取SVN maven 多模块项目 部署tomcat 详细图解!...
  7. JavaScript 设计模式之构造函数模式
  8. Android 视频播放器,VideoView播放视频
  9. Markdown写作入门
  10. pix2pixHD总结
  11. 20155313 杨瀚 《网络对抗技术》实验九 Web安全基础
  12. android bugly qq,Android如何快速集成腾讯Bugly
  13. access函数的用法
  14. php设计超级玛丽人物,面向对象实现简单版的超级马里奥小游戏
  15. 2015美国大学计算机科学专业排名,美国大学研究生计算机科学专业排名|2015年计算机科学专业排行榜(1/2)- 各国学校排名网...
  16. python setup_python--setUp()和tearDown()应用
  17. 盯住Z世代增量,汽车之家818车晚透露哪些营销信号?
  18. 谷歌超级机器人, 许多餐馆已经通过网络进行预订
  19. win7 打开 计算机 慢,win7打开我的电脑进度条很慢
  20. OpenCV--性别年龄预测(附源码)

热门文章

  1. 海外云服务器哪个性价比高?看这篇就够了!
  2. 最佳答案 html5中不使用这些属性,[东北师范大学]《《HTML5开发基础与应用》2019年11月考试期末作业考核(100分)...
  3. iOS AVPlayer使用总结
  4. Spark 环境 Standalone 模式
  5. MySQL-老杜-笔记
  6. MSF小练习——MSF的arp_sweep主机存活扫描
  7. java获取textfield_Java TextField.getText方法代码示例
  8. 查看当前文件夹下含有wyy字串的文件及详细信息
  9. day16 运动(上)
  10. deepin应用分发_Deepin 20官方软件源链接说明,附第三方软件源更换教程