Как выполнить в JavaScript CTRL + щелчок по ссылке, которая работает в последней версии Chrome (v68)?
Контекст. Я запускаю JavaScript-скрипт, который открывает определенную вкладку в определенные часы дня (и закрывает ее через несколько минут). Я пытаюсь заставить его открыть вкладку в фоновом режиме, оставив фокус на текущей вкладке, которую я использую.
Вкладка, открытая программным способом, позволяет Chrome всплывать даже при свертывании, что очень сложно.
Эти старые решения, которые я нашел здесь в Stack Overflow, не работают с последней версией Chrome.
Вручную CTRL + щелчок по ссылке достигает эффекта, который я хочу (вкладка открывается в фоновом режиме). Может ли это быть достигнуто программно в последней версии Chrome?
Следующий код больше не работает с последней версией Chrome.
const openNewBackgroundTab = (url) => {
const anchor = document.createElement("a");
anchor.href = url;
document.body.appendChild(anchor);
const 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
);
anchor.dispatchEvent(evt);
}
openNewBackgroundTab('https://stackoverflow.com');
.. новая вкладка все еще фокусируется.
Действия по воспроизведению:
- Откройте окно 1 и в консоли выполните:
let winStacko; setTimeout(() => { winStacko = open(' https://www.stackoverflow.com '); }, 30 * 1000); setTimeout(() => winStacko.close(), 2 * 60 * 1000);
- Открыть окно 2 в течение 30 секунд после выполнения скрипта
ЖЕЛАЕМОЕ поведение:
- Окно 2 фокусируется на все время, в то время как вкладка фона открывается и затем закрывается.