Закрытие дочернего окна на javascript

DriverCat
На сайте с 10.04.2008
Offline
116
1095

Добрый день!

Есть простейший код чисто для отладки

<html>


<head>
<title></title>
</head>

<body>

<a href="" onclick="javascript: dop=window.open('1.html','','width=400,height=150');">open</a>
<a href="" onclick="javascript: dop.close();">close</a>

</body>

</html>

При открытие дочернего окна по первой ссылке, по второй ссылке оно должно закрываться по идее как я понимаю. Но оно не закрывается. :dont: Что я не правильно делаю????

[umka]
На сайте с 25.05.2008
Offline
456
#1
DriverCat:
Что я не правильно делаю????

Не смОтрите лог в javascript-консоли (или что там у вас есть) :)

Возможно, какая-нибудь настройка браузера не разрешает скриптам закрывать окна.

Лог в помощь!
V
На сайте с 14.08.2010
Offline
2
#2

Найдите два отличия от вашего кода ;-)



<html>

<head>
<title></title>
</head>

<body>

<a href="" onclick="javascript: dop=window.open('1.html','','width=400,height=150'); return false">open</a>
<a href="" onclick="javascript: dop.close(); return false">close</a>

</body>

</html>

Кстати, "javascript:" писать не обязательно.

Пишу скрипты на PHP, python, ruby (/ru/forum/531834)
RO
На сайте с 13.07.2009
Offline
88
#3

рабочий код...

DriverCat
На сайте с 10.04.2008
Offline
116
#4

Спасибо! Не очень секу в javascript как Вы уже поняли, подскажите в чем тут было дело, если не сложно! В чем смысл этого return false ?

verdegal:
Найдите два отличия от вашего кода ;-)



<html>

<head>
<title></title>
</head>

<body>

<a href="" onclick="javascript: dop=window.open('1.html','','width=400,height=150'); return false">open</a>
<a href="" onclick="javascript: dop.close(); return false">close</a>

</body>

</html>


Кстати, "javascript:" писать не обязательно.
V
На сайте с 14.08.2010
Offline
2
#5

Смысл в том, что код, выполняемый внутри onclick="" должен возвращать значение. Если это true - то происходит обработка ссылки т.е. банальный переход по ней, если false - то никто никуда не переходит :) Обычно всё же возвращается false, а ссылка служит просто удобным элементом для запуска каких-то процессов.

Ваша проблема была в том, что вы щёлкали по первой ссылке - открывалось новое окно, но затем в старом происходил переход по ссылке т.е. документ как бы перезагружался, естественно там все объекты создавались заново и информация об объекте dop терялась (хотя новое окно по прежнему продолжало существование).

DriverCat
На сайте с 10.04.2008
Offline
116
#6
verdegal:
Смысл в том, что код, выполняемый внутри onclick="" должен возвращать значение. Если это true - то происходит обработка ссылки т.е. банальный переход по ней, если false - то никто никуда не переходит :) Обычно всё же возвращается false, а ссылка служит просто удобным элементом для запуска каких-то процессов.

Ваша проблема была в том, что вы щёлкали по первой ссылке - открывалось новое окно, но затем в старом происходил переход по ссылке т.е. документ как бы перезагружался, естественно там все объекты создавались заново и информация об объекте dop терялась (хотя новое окно по прежнему продолжало существование).

Спасибо за разъяснение!!!

DriverCat
На сайте с 10.04.2008
Offline
116
#7

Опять проблема. В общем система такая: Открываю новое окно:

<a href="#" onclick="javascript: dop=window.open('map.php', '', 'Toolbar=0, Scrollbars=1, Resizable=0, Width=900, resize=no, Height=789'); return false">Выбор по карте метро</a><br />

В этом дочернем окне запускаю функцию из-под родителя, т.е.

<input type="submit" onclick="javascript: window.opener.submit(getElementsByName('m')); return false" value="Сохранить выбор" />

Функция имеет структуру :

function submit(choice) {

какие-то действия ...
dop.close();
return false;
}

Этот код работает только в FF почему-то, в отладчике типа Firebyg в IE пишет "dop - определение отсутствует. Помогите, пожалуйста доработать код под кроссбраузерность!

C
На сайте с 04.02.2005
Offline
291
#8

<a href="#" onclick="javascript: var dop=window.open('map.php', '', 'Toolbar=0, Scrollbars=1, Resizable=0, Width=900, resize=no, Height=789'); return false">Выбор по карте метро</a>

А так?

DriverCat
На сайте с 10.04.2008
Offline
116
#9

неа, то же самое...

Chukcha:
<a href="#" onclick="javascript: var dop=window.open('map.php', '', 'Toolbar=0, Scrollbars=1, Resizable=0, Width=900, resize=no, Height=789'); return false">Выбор по карте метро</a>

А так?

DriverCat добавил 18.08.2010 в 17:53

Ну что нет ни укого никаких вообще мыслей? Любая помощь приветствуется!!!!

DriverCat добавил 19.08.2010 в 14:36

Короче помогли мне на другом форуме - просто надо было переменную dop объявить как глобальную. Вот так... Всем спасибо!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий