Как я могу выполнить что-то после завершения загрузки нового окна?

0

Мне нужно закрыть новое окно после полной загрузки. У меня есть:

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 до завершения загрузки (он закрывается почти сразу).

Вторичный вопрос: могу ли я добавить тайм-аут, чтобы продолжить и закрыть новое окно, если страница киосков и почему-то никогда не загружается полностью?

Теги:
onload

1 ответ

0
Лучший ответ

Если ваше окно находится в одном домене, вы можете использовать это:

 my_window.onload = function() {my_window.close();};

или это:

my_window.addEventListener('load', function() {my_window.close();}, true);

Вы не используете parens после имени функции при передаче ссылки на обычную функцию. Использование parens, как вы делали, вызывает немедленное выполнение функции.

Я также добавил анонимные функции, поэтому контекст my_window можно сохранить до времени выполнения функции.

Если ваше окно не находится в одном домене, у вас, вероятно, есть проблемы с одинаковыми защитами, которые не позволяют вам получить доступ к javascript другого окна.

  • 0
    Не было бы так близко window ? = my_window.close; будет назначать close без контекста для onload поэтому при вызове он вызывается в контексте по умолчанию ( window ). Или это особый случай?
  • 0
    @ t.niese - да, я изменил свой код, чтобы убедиться, что используется правильный контекст.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню