我正在使用 Mozilla Firefox,我正在尝试找出一种使用 JavaScript 和 DOM 访问同一窗口中其他选项卡内容的方法(如果存在的话,我愿意接受其他技术)。
例如,我想在
tab1
中运行JavaScript代码,它可以找到其他选项卡的标题。基本上我需要这个,以便我可以识别由于当前页面中的 href
而打开的选项卡,而无需使用 window.open
方法。我想要的只是一个简单的超链接,它打开一个与当前页面属于同一域的页面(该页面应该在新选项卡中打开)。现在我希望能够从当前选项卡访问这个新选项卡。
虽然您可以使用 JavaScript 轻松打开新窗口,但我确信仅此而已。从安全角度来看,您不希望一个选项卡中的 JavaScript 能够查询/访问另一选项卡中的 DOM。如果两个网站在单独的选项卡中打开,则任何网站都可以访问您的银行帐户详细信息等。
如果新窗口/选项卡是使用 JavaScript 打开的并且页面确实位于同一域中,则您可以访问它。
您可以像这样打开窗口/选项卡
var win = window.open("/path_to_page");
然后您必须等待页面加载才能访问,例如标题。
win.onload = function(){ alert(win.document.title); };
您可以使用 HTML5 跨窗口消息传递(archive.org 链接...但这是一种前沿技术。
即使在这种情况下,您可能需要使用 JavaScript 劫持 标签“click”事件并自己打开窗口,以便您可以访问新的窗口对象来发布消息。
尝试设置一个可由同一域中的任何页面访问的 cookie。在其他页面上,使用 JavaScript 计时器来检查 cookie 值是否已更改,当更改时,您可以使用其值并采取操作。
它对我有用。
嗯,这是不可能的,你可以尝试一下
<a target="_blank" rel="opener" href="about:blank"></a>
这会创建一个打开 about:blank 的链接,由于 Same-Origen-policy,这将与打开它的页面具有相同的域。