Видимость переменных (снова)
Функция doOpen() открывает новое окно и заносит идентификатор этого окна в глобальную переменную win.
Функция doClose берёт этот идентификатор окна и закрывает его. Но почему-то не работает, пишет "win is undefined", функция doClose() не видит переменную win... Что не так понимаю? Как решить?
<a href="" onclick="doOpen('http://yandex.ru', 'namewin', 'width=300, height=200')">Window Open</a><br>
<a href="" onclick="doClose()">Window Close</a>
var win; // global var
function doOpen(url,name,properties)
{
win = open(url,name,properties);
}
function doClose()
{
win.close();
}
|
Потому что ты переходишь по ссылке. Атрибут href="" создает ссылку на текущую страницу. Не пиши атрибут вообще. Или используй псевдо-протокол javascript:
|
Аха, ясно, спасибо. То есть можно сделать тремя вариантами:
1. <a onclick="doClose()">Window Close</a><br> 2. <a href="#" onclick="doClose()">Window Close</a><br> 3. <a href="javascript:doClose()">Window Close</a> Верно? |
Лучше всего <button onclick="doClose()">Close Window</button>
Если пишешь href (даже если #), то клик надо отменять: onclick="return doClose(), false" |
Ясно, спасибо.
|
| Часовой пояс GMT +3, время: 15:40. |