javascript - 如何使用javascript写入在后台打开的新选项卡

标签 javascript google-chrome tabs focus

我正在尝试做两件事,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/

相关文章:

javascript - 如何处理图像背景的加载状态?

javascript - Firebase 权限

jquery - 使用 "overflow: scroll"时,翻页卡背面的内容在 Chrome 中显示在前面,而不是其他浏览器

google-chrome - 适用于 ChromeDriver 和 Chrome 浏览器的 Selenium 以及日志消息 "Only local connections are allowed"

javascript - 如何使用 jquery 删除外部标签(<tag></tag>)并将其余标签附加到其父级?

javascript - JS 选项卡的滚动条问题

flutter - flutter 更改选项卡中显示的内容

javascript - 图像之间连续淡入淡出和旋转

javascript - 在 div 中绘制 js 响应图

python - 一次删除一个空格