在Chrome中打开两个Tab,分别是TabA(test.com),TabB(editor.test.com,是一个web编辑器,在编辑器中可以打开tab页编辑多个文件)。能否在test.com中点击一个链接的时候,在editor.test.com中打开一个tab页??
如果不用HTML5的话,简单的跨子域就可以了。
在tabA第一次打开编辑器tabB的时候,执行
editor = window.open("http://editor.test.com")
(这个请求可能被浏览器屏蔽,自行百度解决方式,只有用户点击鼠标之后open才不会被屏蔽)
然后editor就是新打开页面的window对象。但是还涉及跨域的问题,还不能通过editor直接在新的标签页执行代码。下面需要做的就是在 tabB 里面执行一句 window.domain = "test.com"。这样就可以在TabA里面通过 editor 执行任意的代码了。
如果用 HTML5 的话,就不用跨域了。
直接在tabA里面执行
editor = window.open("http://editor.test.com");
editor.postMessage("123","*")
tabB就可以
window.onmessage = function(e){
// e.data 获得发送的消息
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。