Мне нужно закрыть новое окно после полной загрузки. У меня есть:
my_window=window.open("http://www.yahoo.com", "_blank", "resizable=yes, scrollbars=yes, titlebar=yes, width=500, height=400, top=10, left=10");
Я пробовал:
my_window.onload = my_window.close();
а также
my_window.addEventListener('load', my_window.close(), true);
Не дожидайтесь окончания my_window до завершения загрузки (он закрывается почти сразу).
Вторичный вопрос: могу ли я добавить тайм-аут, чтобы продолжить и закрыть новое окно, если страница киосков и почему-то никогда не загружается полностью?
Если ваше окно находится в одном домене, вы можете использовать это:
my_window.onload = function() {my_window.close();};
или это:
my_window.addEventListener('load', function() {my_window.close();}, true);
Вы не используете parens после имени функции при передаче ссылки на обычную функцию. Использование parens, как вы делали, вызывает немедленное выполнение функции.
Я также добавил анонимные функции, поэтому контекст my_window
можно сохранить до времени выполнения функции.
Если ваше окно не находится в одном домене, у вас, вероятно, есть проблемы с одинаковыми защитами, которые не позволяют вам получить доступ к javascript другого окна.
window
?= my_window.close;
будет назначатьclose
без контекста дляonload
поэтому при вызове он вызывается в контексте по умолчанию (window
). Или это особый случай?