首页  >  问答  >  正文

以JavaScript设置window.name,以便稍后从另一个页面使用<a target='name'>?

在一个窗口中,例如 foo.example.com:

然后在另一个窗口中,稍后,例如 bar.example.com:

GOFOO

这样可以工作吗?是否有办法返回到一个最初没有使用 target='' 命名的窗口?

P粉821808309P粉821808309398 天前581

全部回复(1)我来回复

  • P粉434996845

    P粉4349968452023-09-17 22:32:37

    窗口的name属性确实可以在JavaScript中设置。然而,它的工作方式并不完全像你设想的那样。

    在HTML中,元素的target属性用于指定在哪里打开链接的文档。该属性的值可以是:

    _blank:在新窗口或标签中打开链接的文档。 _self:在与点击时相同的框架中打开链接的文档(这是默认值)。 _parent:在父框架中打开链接的文档。 _top:在窗口的整个主体中打开链接的文档。 framename:在命名的框架中打开链接的文档。 因此,target属性的值被解释为框架名称,而不是window.name。它们没有直接的关联。

    然而,window.name在跨窗口通信中起到了一定的作用。当你从一个页面导航到另一个页面时,window.name会保持不变(即使在跨域导航时),直到窗口或标签被关闭,或者窗口或标签导航到一个清除window.name的不同域上的页面。但它不会按照你在示例中尝试使用的方式工作。

    需要注意的是,window.name属性主要用于脚本编程,而不是作为通过标签引用页面间窗口的方式。

    你试图实现的——从另一个窗口/标签引用现有窗口/标签——通常由于同源策略的限制和出于安全原因的窗口间通信的限制而无法直接实现。

    然而,你可以使用其他方法,比如使用localStorage、sessionStorage或postMessage来实现某些形式的窗口间或标签间通信,具体取决于你的需求。

    回复
    0
  • 取消回复