Единственный способ, которым я знаю, сделать это в javascript, это использовать всплывающее окно подтверждения. Он имеет общие кнопки «ОК» и «Отмена», которые, я не думаю, можно редактировать, и отформатирован в соответствии с веб-браузером пользователя. Чтобы использовать метод подтверждения, вы пишете:
if (confirm("Do you really want to leave here?"){
//do whatever
}
Это - хороший вопрос, и этот точный вид использования когда-то использовался для кражи списков контактов из Gmail.
Каждый раз, когда браузер выбирает данные из домена, это отправляет через любые cookie-данные, которые установил сайт. Это cookie-данные может затем используемый, чтобы аутентифицировать пользователя и выбрать любые определенные пользовательские данные.
Например, при загрузке новой страницы stackoverflow.com браузер отправляет cookie-данные в stackoverflow.com. Stackoverflow использует те данные для определения, кто Вы, и показывает соответствующие данные для Вас.
То же верно для чего-либо еще, что Вы загружаетесь от домена, включая файлы CSS и JavaScript.
Уязвимость системы обеспечения безопасности, которой Flickr, с которой стоят, была то, что любой веб-сайт мог встроить этот файл JavaScript, размещенный в серверы Flickr. Ваши cookie-данные Flickr были бы затем отправлены по как часть запроса (так как JavaScript был размещен на flickr.com), и Flickr генерирует документ JavaScript, содержащий уязвимые данные. Злонамеренный сайт затем смог бы получить доступ к данным, которые были загружены.
Вот использование, которое использовалось для кражи контактов Google, которые могут сделать его более ясным, чем мое объяснение выше: http://blogs.zdnet.com/Google/?p=434
Если я должен был поместить страницу HTML на свой веб-сайт как это:
<script src="http://www.flickr.com/contacts.js"></script>
<script> // send the contact data to my server with AJAX </script>
Принятие contacts.js использует сессию для знания, какие контакты отправить, у меня теперь была бы копия контактов.
Однако, если бы контакты отправляются через JSON, я не могу запросить их от своей страницы HTML, потому что это был бы междоменный запрос Ajax, который не позволяется. Я не могу запросить страницу со своего сервера также, потому что у меня не было бы Вашего идентификатора сессии.