JavaScript

Как закрыть вкладку скриптом?

Такой вопрос для програмистов есть у меня скрипт
setTimeout(function() {document.getElementById("btn_send").click()();}, 60000);
который нажимает на кнопку после определенного времени.
Мне надо чтобы после этого скрипта закрылась вкладка как это прописать есть этот скрипт
function() {
window.close();
он работает сам но не вместе с скриптом на кнопку я наверное неправильно пишу подскажите как надо
помогите буде благодарен.
В спецификации метода close() написано: "Закрывает попап без предупреждений и уведомлений. Вообще, метод close() можно вызвать для любого окна, в том числе, текущего. Но если окно открыто не с помощью window.open(), то браузер может проигнорировать вызов close или запросить подтверждение."

Попробовав вызвать этот метод в консоли, я заметил что при первом вызове метод меняет свойство window.closed с false на true. Соответственно после этого, при втором вызове вкладка таки закрывается, но вручную изменить это свойство тоже не получится. Исходя из этого я вижу 2 варианта решения вашей задачи:
1. Вызывать метод close() дважды как предложил Elepsis Eclipse.
2. Делать ваш скрипт в вкладке открытой через метод window.open(). Например:

1) В первой вкладке вызываете метод open и записываете его экземпляр в переменную
const newWindow = window.open('url');
2) С открывшимся окном теперь можно работать через переменную newWindow
newWindow.alert('Hello');
3) Теперь вы можете спокойно закрыть свое окно, вызвав у вашего экземпляра метод close()
newWindow.close();

Вот вам небольшой пример: https://jsfiddle.net/DimonDevelop/jen5byx0/
Виталий Верхотуров
Виталий Верхотуров
2 839
Лучший ответ
Думан Ажибаев Я знаю что скрипт не закроет окно которое он не открыл это хорошо но я хочу знать что можно чтобы это скрип сработал
setTimeout(function() {document.getElementById("btn_send").click()();}, 60000);
потом после того как он нажмет на кнопку эта вкладка закрылась сама тоесть через скрип.
Я просто не знаю как прописать я понимаю надо открыть к примеру через этот скрипт
var childWindow = window.open('http://google.com');
потом он закроеться если я вставлю вот этот к примеру
setTimeout(function() {
window.close();
}, 60000);
Но есть возможность соединить эти два скрипта
setTimeout(function() {
window.close();
}, 60000);

setTimeout(function() {document.getElementById("btn_send").click()();}, 60000);
Тоесть чтобы после нажатия клавиши"btn_send" через там 3-5 сек скрипт закрыл вкладку.
setTimeout(function() {
    document.getElementById("btn_send").click();
    close(); close();
}, 60000);
_____________

Не понял почему, в хроме вкладка закрывается только со второго раза) Так сработало, но возможно это ошибка браузера. В 77-м хроме вообще вроде не работает...
!S
!#| Sunqar |#!
62 360
Думан Ажибаев Он как бы работает но кнопка не успевает нажаться можно зделать так чтобы кнопка нажалась и после 3 секунд закрылась вкладка?
Метод есть он работает но во первых он устаревший во вторых не закрывает а выводит диалоговое окно с вопросом закрыть? В третьих агтисппм и система безопасности браузера активно борется с этим методом и не всегда разрешает выполнение
Болат Махмутов
Болат Махмутов
59 848