我想在多个浏览器选项卡上打开一个相同的页面。当我单击一个浏览器选项卡时,我希望 JavaScript 函数执行一次,一次!并不是说该函数被执行了 3 次,因为例如在 3 个浏览器选项卡上打开了一个相同的页面。
我努力了:
window.addEventListener("focus", () => {
console.log(document.hasFocus());
});
如果您的光标专注于 Web 浏览器并不断在该浏览器上的选项卡之间切换,则此方法可以正常工作。
但是,如果您首先将光标放在该 Web 浏览器以外的其他东西上(例如计算机桌面或代码 IDE),然后单击 NON-ACTIVE 浏览器选项卡,则上述代码将被执行两次,一次由前一个活动选项卡,另一次是您刚刚单击的新活动选项卡。
那是我的问题。
当我单击 Web 浏览器选项卡时,如何只执行一次 JavaScript 代码?除了 JavaScript 代码之外的任何解决方案也都受到欢迎,例如跟踪像素或输入字段自动对焦事件,仅用于命名示例。我并不是说跟踪像素技术会有所帮助。我没有使用 jQuery。我正在使用 VueJs。