Я хотел бы иметь кнопку на веб-странице со следующим поведением:
- При первом нажатии откройте всплывающее окно.
- При последующих щелчках, если всплывающее окно все еще открыто, просто перенесите его на передний план. Если нет, откройте заново.
Приведенный ниже код работает в 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. Если для этого есть предпочтительный этикет, пожалуйста, дайте мне знать.