Лучший способ открыть / закрыть окно браузера? - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть запрос от клиента, чтобы настроить некоторые старые функции в системе.Текущий файл имеет href ссылки, которые выглядят следующим образом:

<a href="page_detail.cfm?id=#id#" target="_blank">#Name#</a>

Если вы посмотрите код выше, вы увидите, что страница target="_blank" будет открыта в новом окне браузера.Однако пользователь хочет иметь возможность закрыть это окно, если он нажмет кнопку OK/Cancel в page.detail.cfm.Я попытался использовать этот код для закрытия окна браузера:

var closeBtn = document.getElementById('btn_cancel');
closeBtn.addEventListener('click', cancel);
function cancel(){
    window.close();
}

После того, как я проверил код и нажал Cancel сообщение в инструментах разработчика выглядит так:

Scripts may not close windows that were not opened by script.

Я думаю,это окно нельзя закрыть, если оно ранее не было открыто с помощью JavaScript.Я не уверен, что будет лучшим подходом для решения этой проблемы?Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 05 апреля 2019

Технически скрипту не разрешено закрывать страницу, которую открыл пользователь, в отличие от того, что он открывается самим скриптом. Это проблема безопасности браузера. Я знаю, что для этого были некоторые хаки, но такие вещи довольно быстро исправляются из того, что я могу сказать. Технически вы можете открыть окно с помощью скрипта вместо какого-либо события щелчка или чего-то подобного, но опять же, это немного обходной путь. Проверьте это https://developer.mozilla.org/en-US/docs/Web/API/Window/close

...