Javascript для определения загрузки страницы в другом окне в Firefox - PullRequest
5 голосов
/ 18 октября 2010

Мне было интересно, как лучше всего определить, когда страница закончила загрузку, где рассматриваемая страница находится на другой вкладке или в окне, ... и где страница для загрузки может быть любой страницей в Интернете и не под моим контролем.

Я использую только Firefox и не возражаю, если для решения требуется расширение Firefox или сценарий Grease Monkey (я уже добавил конфигурацию / команды для доступа к страницам из разных доменов).

Код ниже показывает попытку. Иногда он определяет, когда загружена начальная страница, но когда я нажимаю «отправить», чтобы перезагрузить новую страницу в другое окно, он не обнаруживает ее.

Спасибо.

<html>
<head>
<script type="text/javascript">

    currentPageObj = window.open("http://www.bbc.co.uk", "currentPage");

    currentPageObj.addEventListener("load", function(){alert("loaded")}, false);

</script>
</head>
<body>

    <form action="http://www.example.com" target="currentPage">
         <input type="submit">
    </form>

</body>
</html>

1 Ответ

1 голос
/ 18 октября 2010

На другой странице просто есть обработчик события onload, который вызывает метод в родительском окне (window.opener), чтобы сделать то, что вы хотите. например на дочерней странице:

window.addEventListener('load', function () {
  if (window.opener && !window.opener.closed)  {
     window.opener.childLoaded();
  }
}, false);

И пусть childLoad сделает то, что вы хотите в родительском окне. (Примечание: может быть лучше сохранить ссылку на окно, с которым вы хотите иметь дело, например, инициализировать var parentWindow = window;, потому что при вызове между окнами это может сбить с толку.)

...