Скажем, например, у вас есть всплывающее окно, которое открывается с вашей главной страницы. Всплывающее окно содержит список инструкций. Некоторые из этих инструкций имеют ссылки внутри. Например:
- [Войдите в свой аккаунт.]
- Сделай что-нибудь еще ...
- А затем [нажмите на другую ссылку].
Каждый щелчок по ссылке должен открываться в главном (родительском) окне. Итак, если я нажму на ссылку в # 1, она загружается в главном окне. Я вхожу в систему и затем нажимаю на ссылку в # 3, и она снова открывается в главном окне (где я только что вошел в систему). Вот как я это делаю сейчас:
<a href="JavaScript:openInParent('Some.Url', false);">Login to your account</a>
<script type="text/javascript">
function openInParent(uri, close)
{
window.opener.location = uri;
if (close)
window.close();
}
</script>
Это прекрасно работает в Chrome. Safari, Firefox, IE9 и Opera открывают первый щелчок по ссылке, но второй открывается в новом окне. Некоторые браузеры помещают весь «JavaScript: ...» в поле местоположения нового окна.
Как я могу сделать эту работу кросс-браузерной?