开发者社区> 问答> 正文

同一浏览器的两个Tab页,如何实现在Tab a中点一个链接,在Tab b(编辑器)中打开一个子tab页?

在Chrome中打开两个Tab,分别是TabA(test.com),TabB(editor.test.com,是一个web编辑器,在编辑器中可以打开tab页编辑多个文件)。能否在test.com中点击一个链接的时候,在editor.test.com中打开一个tab页??
screenshot

展开
收起
a123456678 2016-03-12 14:48:25 3352 0
1 条回答
写回答
取消 提交回答
  • 如果不用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 获得发送的消息

    }

    2019-07-17 19:00:53
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
WEB浏览器中即将发生的安全变化 立即下载
基于浏览器的实时构建探索之路 立即下载
基于浏览器的实时构建探索之路--玄寂 立即下载