我正在尝试做两件事,1.我需要在后台打开一个新选项卡而不给予其焦点,2.我需要能够使用 javascript 写入该页面。 (我只关心它在 Chrome 上的工作情况)
现在如果我使用这段代码......
var handle = window.open("text/html", '_blank');
handle.document.write(reportPath);
handle.document.title = "Export Report";
我可以打开一个新窗口并对其进行写入,但是,该窗口会被推到您的脸上,这是我不希望发生的,因为它严重中断了我的用户的工作流程(我想将注意力集中在前一个窗口上)。
但是,我可以使用这段代码......
var a = document.createElement("a");
a.href = "about:blank";
a.target='_blank'
var evt = document.createEvent("MouseEvents");
//the tenth parameter of initMouseEvent sets ctrl key
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
a.dispatchEvent(evt);
这工作得很好(它在后台打开新选项卡),但是,我无法写入打开的新窗口,因为我无法获取新窗口的句柄。
有人可以告诉我如何使用第一种方法打开该窗口而不给予其焦点,或者告诉我如何使用第二个窗口,但以某种方式获取该窗口的句柄以便我可以写入它.
正如我之前所说,我只需要此代码即可在 Chrome 上使用,这是我公司的网络应用程序,这里的每个人都使用 Chrome,所以我不在乎它是否适用于其他浏览器。
最佳答案
除了上面的答案之外,您还可以对新窗口执行handle.blur()以失去焦点。
关于javascript - 如何使用javascript写入在后台打开的新选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13768397/