Я хотел бы иметь кнопку на веб-странице со следующим поведением:
- При первом нажатии откройте всплывающее окно.
- При более поздних кликах, если всплывающее окно все еще открыто, просто принесите его на передний план. Если нет, повторно откройте.
Нижеприведенный код работает в Firefox (Mac и Windows), Safari (Mac и Windows) и IE8. (Я еще не тестировал IE6 или IE7.) Однако в Google Chrome (как в Mac, так и в Windows) более поздние клики не принесли существующего всплывающего окна на передний план по желанию.
Как я могу сделать эту работу в Chrome?
<head>
<script type="text/javascript">
var popupWindow = null;
var doPopup = function () {
if (popupWindow && !popupWindow.closed) {
popupWindow.focus();
} else {
popupWindow = window.open("http://google.com", "_blank",
"width=200,height=200");
}
};
</script>
</head>
<body>
<button onclick="doPopup(); return false">
create a pop-up
</button>
</body>
Предыстория: я повторно спрашиваю этот вопрос специально для Google Chrome, так как я думаю, что мой код решает проблему, по крайней мере, для других современных браузеров и IE8. Если для этого есть предпочтительный этикет, пожалуйста, дайте мне знать.