Можно ли создать кнопку, которая открывает указанный сайт в новой вкладке и закрывает текущую? - PullRequest
0 голосов
/ 16 марта 2020

Я создаю веб-сайт WordPress для клиента. Этот веб-сайт предлагает поддержку жертвам жестокого обращения, и мой клиент желает использовать кнопку «pani c» на веб-сайте, которая при нажатии либо:

a) отправляет пользователя на указанный веб-сайт (например, google.com), а затем стирает историю кнопки «Назад»

b) открывает указанный веб-сайт на новой вкладке (что устраняет проблему с кнопкой «Назад»), а затем закрывает текущую.

Я попытался добавить простую кнопку, подобную этой:

<button onclick="window.close();">Close</button>

Но затем я получаю это в консоли:

[Предупреждение] Не удается закрыть окно, так как оно не было открыто на JavaScript

Если это невозможно сделать с помощью Javascript, есть ли другие способы, которыми я могу go сделать это?

1 Ответ

0 голосов
/ 16 марта 2020

Не возможно.

Проблема, с которой вы столкнулись, заключается в том, что браузер не позволяет Javascript контролировать такие вещи, как открытие и закрытие вкладок, и это правильно. Веб-страница на самом деле не должна иметь возможности доступа или управления вещами вне своей вкладки, это понятие называется sandboxing . Веб-страницы могут свободно играть в своей собственной песочнице, но им не разрешается узнавать или изменять вещи вне их песочницы. «История браузера» и «Другие вкладки» находятся за пределами «песочницы» вашей веб-страницы.

Это не означает, что это невозможно в JavaScript, это будет невозможно для любого хорошо спроектированного браузера, полная остановка. Вопрос не в том, какую технологию вы могли бы использовать для выполнения sh, а в том, что поведение явно запрещено конструкцией. Если бы вы могли сделать это в главном браузере, вам, вероятно, предложили бы вознаграждение за ошибки. Представьте себе, что может сделать злоумышленник с возможностью изменить историю в кнопке «Назад» или закрыть другие вкладки.

Помимо этого, я обеспокоен подходом вашего работодателя. Злоумышленники зачастую более технически подкованны, чем их жертвы, и подобная «кнопка pani c» даже не повлияет на общую историю браузера, не говоря уже о поражении любого расширенного мониторинга, такого как шпионское ПО, или мониторинга DNS необычного маршрутизатора. Жертвы жестокого обращения не должны пользоваться устройствами или сетями, которые, по их мнению, скомпрометированы, и должны обращаться за помощью по надежным и безопасным каналам связи. Я обеспокоен тем, что любая функция «pani c button» может создать ложное чувство безопасности для пользователя, не разбирающегося в безопасности.

...