当前位置: 首页 > 知识库问答 >
问题:

是否在两个浏览器选项卡之间共享变量作用域?[副本]

狄承望
2023-03-14

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

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

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

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

谢谢!

共有2个答案

罗法
2023-03-14

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

国兴文
2023-03-14

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

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

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

比饼干干净多了。这里更多。

 类似资料:
  • 问题内容: 我的网站上有一些值,要在关闭浏览器时清除这些值。我选择存储这些值。当选项卡关闭时,它们确实被清除,并且如果用户按下f5则保留;但是,如果用户在其他选项卡中打开某些链接,则这些值不可用。 如何在应用程序的所有浏览器选项卡之间共享值? 用例:将值存储在某个存储器中,使该值可在所有浏览器选项卡中访问,并在所有选项卡都关闭时清除它。 问题答案: 您可以使用localStorage及其“存储”

  • 问题内容: 我有两个线程。可以调用修改变量的类的update方法。另一个调用读取该变量的类的update方法。只有一个线程写入,一个(或多个)线程读取该变量。由于我是多线程技术的新手,我需要在并发方面做什么? 谢谢, 问题答案: 如果有且仅有一个写线程,你可以逃脱使得它。否则,请查看答案。 仅在只有一个写线程的情况下才起作用,因为只有一个写线程,因此它始终具有的正确值。

  • 用例:将一个值放入某个存储区,在所有浏览器选项卡中保持该值可访问,并在所有选项卡关闭时清除该值。

  • 我有两个网站,例如: foo.example.com bar.example.com 我想发送一些消息之间的网站,如果有打开在不同的标签。 有不同的可能方式: 邮件后传 SharedWorker 本地存储 但每一个都需要相同的来源或对Window.Opener的访问... 如果顶部域相同,则有解决方案浏览器端用于选项卡之间的通信?

  • 我需要在浏览器选项卡之间切换,使用以下代码, 它有时只是正常工作,但有时表现出异常。有谁能建议我使用Java在一个窗口内切换选项卡的其他说明吗。

  • 问题内容: 我想在以下两个指令之间共享: 在HTML中,我有: 我创建了具有隔离范围的名为“ directive1”的指令,并将名称“ table”分配给该属性。我无法在其他指令中访问此作用域属性。 那么,如何访问另一个指令的作用域呢? 问题答案: 您可以对需要跨指令同步的项目执行操作。 或者,您可以将对象传递给指令1隔离范围,该范围将充当通信机制。在此对象上,如果更改子属性(如),则会影响父范围