You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过JS设置window.name实现跨页面target跳转?

问题解答

第一个方案可行吗?

不行,这里得先分清两个完全不同的概念:

  • <a>标签的target属性对应的是浏览器窗口/标签页的标识名称——这个名称是窗口被打开时指定的(比如用window.open(url, "窗口名"),或是<a target="窗口名">打开新窗口时),属于浏览器层面的标识。
  • window.name是当前页面的DOM属性,它确实能跨域保留,但和浏览器窗口的标识名称完全不搭边。

所以你在foo.example.com的窗口里执行window.name='HERE';,根本不会把这个窗口的浏览器标识名改成HERE。bar.example.com页面里的<a href='foo.example.com' target='HERE'>GOFOO</a>,只会去查找浏览器里标识名为HERE的窗口,找不到就直接新开一个,这个方案根本不生效。

能找回未通过target初始命名的窗口吗?

基本没辙,原因如下:

  • 未命名的窗口(比如手动打开的、用target="_blank"没指定名称的),浏览器不会给它分配固定可复用的标识名,没法通过target或其他方式直接定位到它。
  • 如果是你自己的页面用window.open打开的未命名窗口,只有在打开时保存了返回的窗口引用(比如let myWin = window.open(url)),才能在同域下操作这个引用;但要是没保存引用,或者跨域了,完全拿不到任何能定位它的途径。
  • 要是用户手动打开的窗口,连opener关联关系都没有,更是彻底没法找回。

内容的提问来源于stack exchange,提问作者Don

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 00:52:33