【问题标题】:Is there a way to differentiate between elements with the same ID but in different browser tabs?有没有办法区分具有相同 ID 但在不同浏览器选项卡中的元素?
【发布时间】:2012-03-13 15:06:15
【问题描述】:

假设我在两个选项卡中打开了我的网站,并且我想获取 id 为“id”的元素,我能否以某种方式在当前关注的浏览器选项卡中获取该元素?

document.getElementById("id"); 

似乎获取了最近加载的元素。

【问题讨论】:

  • @Purmou 是的,为清楚起见进行了编辑

标签: javascript html


【解决方案1】:

不,因为那将是一个巨大的安全漏洞。

stackoverflow 上有一个类似的问题:Accessing the content of other tabs in browser

This answer 链接的问题提供了代码来执行此操作,但我过去在尝试在另一个文档上指定事件处理程序时遇到了 IE 问题(虽然在 Firefox 中工作正常)。

【讨论】:

  • 那为什么会这样呢?我的意思是,假设我在选项卡 nr1 中,并且文档有一个 id='id' 的输入元素。现在,我打开选项卡 nr2,切换到它并将 id='id' 的元素的值设置为 'xyz'。如果我切换到选项卡 nr1,并尝试打印输入的值,它会显示 'xyz' 而不是 '' 或之前的任何内容。
  • 至于您链接的答案,我认为当我从 javascript 打开新选项卡时会起作用,但在我试图解决的情况下,用户从浏览器中强制使用新选项卡
  • 不应该也不可能通过 Javascript 访问用户创建的选项卡。如果确实如此,请向您的浏览器供应商提交错误报告;)
  • 事实证明并非如此。只是“同时处理这么多文件,我忘了上传一些”的情况,并且应该设置值的事件没有触发。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 2021-04-27
  • 1970-01-01
相关资源
最近更新 更多