两个浏览器选项卡之间的共享变量范围? [复制]

Posted

技术标签:

【中文标题】两个浏览器选项卡之间的共享变量范围? [复制]【英文标题】:Shared variable scope between two browser tabs? [duplicate] 【发布时间】:2012-08-22 22:27:46 【问题描述】:

我有一个包含选择/选项条目的 html 表单的 Web 应用程序。它在一个包含 200 个项目的演示中运行良好,即使找到你想要的那个很笨拙,但实际上有超过 30000 个项目。 (这是一个零件清单。)

我的第一个想法是有一个“选择零件”按钮,而不是下拉框,这会打开第二个浏览器选项卡(“搜索零件”),然后显示完整列表、搜索功能等,每个都有一个“复制到剪贴板”按钮。然后用户可以按一个并返回到原始表单并按“粘贴”按钮,部件的名称将输入到表单中。

我要问的是,是否有一个 javascript 范围,我可以在“搜索部件”选项卡中存储一个小文本字段和 ID 号,以便在用户按下“粘贴”按钮时检索它主表单页面?我不想将消息发送回服务器。

(顺便说一句,我不一定对实现 Ctrl+C/V 或使用系统剪贴板感兴趣,除非这是简单解决方案的一部分。)

谢谢!

【问题讨论】:

@JamesHill,同意,情况相同。那里有一些好主意,我确实看过,但我没有看到那个! 【参考方案1】:

您可以使用 HTML5 存储 API - window.localStorage

var val = localStorage.getItem("key"); //get

localStorage.setItem("key", val);  //set

比饼干干净得多。更多here。

【讨论】:

【参考方案2】:

只要第一页打开“搜索部件”选项卡,您就应该可以访问(从“搜索部件”页面内部)window.opener 对象。如果您在包含所需属性/变量的父页面中设置了一个全局对象,则您应该可以从子页面中完全访问。因为第一页是打开的,所以您仍然可以访问孩子中的调用方法,但我个人会坚持让其中一个或另一个执行更新。

【讨论】:

以上是关于两个浏览器选项卡之间的共享变量范围? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

会话在选项卡之间共享

如何在浏览器选项卡之间共享单个 js 资源?

Spring Security - 如何禁用同一浏览器的多个选项卡之间的相同会话共享?

如何在作为选项卡的 2 个片段之间共享视图模型

浏览器会话存储。标签之间共享? [重复]

您如何在两个浏览器选项卡/窗口之间进行通信? [复制]