Я пытаюсь вывести предупреждающее сообщение о выходе из веб-страницы, но оно вложено в набор фреймов.
Очевидно, window.onbeforeunload срабатывает, если я загружаю веб-страницу как корневую страницу в браузере, но не запускается при загрузке внутри набора фреймов.
Редактировать : он не работает в Chrome 7 или Safari 5, но работает в Internet Explorer 8 и FireFox 3.6. Есть ли исправление / обходной путь, чтобы я мог заставить его работать и в Chrome 7 и / или Safari 5?
Что я делаю не так?
Вот что я попробовал:
function closePageWarning()
{
return "Are you sure you want to leave this page?"
}
window.onbeforeunload = closePageWarning
Тестовые документы:
test1.html (страница со сценарием unbeforeunload)
<html>
<body>
<script language="javascript">
function closePageWarning()
{
return "Are you sure you want to leave this page?";
}
window.onbeforeunload = closePageWarning;
</script>
<a href="http://www.bitbucket.org">bitbucket</a>
</body>
</html>
test2.html (frameset)
<html>
<frameset cols="20%, 80%">
<frame name="menu" src="test3.html" />
<frame name="content" src="test1.html" />
</frameset>
</html>
test3.html (меню, запуск смены фрейма с помощью скрипта)
<html>
<body>
<a target="content" href="http://www.bitbucket.org">bitbucket</a>
</body>
</html>
Как проверить:
- Загрузите test1.html в свой браузер и нажмите на ссылку, обратите внимание, что вы получите вопрос
- Загрузите test2.html в свой браузер, нажмите любую ссылку, и вы заметите, что у вас нет вопросов
Проверено в:
- Google Chrome 7.0.517.44 - не работает
- Internet Explorer 8.0.7600.16385 - работает
- Safari 5.0.2 - не работает
- FireFox 3.6.12 - работает