Можно ли расширить DOM нового окна, открытого с помощью window.open, не загружая prototypeJS в новом окне? - PullRequest
0 голосов
/ 04 мая 2010

Можно ли расширить DOM нового окна, которое я открыл, используя что-то вроде этого:

var newWindow = window.open('about:blank', 'testWindow', '');
Element.extend(newWindow);

Я думал, что Element.extend будет работать .. Но я видел любые ссылки на прототип в DOM.

Есть идеи?

Спасибо! Morten

Ответы [ 2 ]

0 голосов
/ 09 мая 2010

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

Во-вторых, даже если окно того же источника, вы не можете получить доступ к его DOM, как только выОткрой это.Вам нужно дождаться загрузки.Самый простой способ - это заставить дочернее окно вызывать функцию в родительском окне после завершения загрузки (после DOMContentLoad или Window.onload).Или вы можете многократно проверять, доступен ли DOM в цикле setTimeout (не используйте цикл while, поскольку он зависает в браузере до тех пор, пока дочернее окно не будет готово).Когда DOM готов, вы можете делать с ним все, что хотите.

0 голосов
/ 08 мая 2010

Почему вы не хотите снова загружать прототип в новом окне ??? Я имею в виду, что ссылка находится в кеше, поэтому не имеет значения, если вы вставите ее снова ... есть причина ???

...