У меня есть всплывающее окно, которое должно охватывать несколько фреймов, поэтому я использую window.createPopup, чтобы заставить это работать. (IE6, 7 и 8.)Пустой DOM внутри всплывающего окна
Ниже функция я использую для создания всплывающего окна:
function ShowMyPopup() {
notificationPopup = window.createPopup();
$(notificationPopup.document.body).load("/notification.html");
notificationPopup.show($(sourceFrame.document.body).width() - 510, $(sourceFrame.document.body).height() - (510 - $(sourceFrame.document.body).height()), 500, 500, sourceFrame.document.body);
}
Это, кажется, работает очень хорошо. Я вижу всплывающее окно, как должен. Проблема в том, что независимо от того, что я делаю, я не могу получить доступ к любому из элементов DOM в появившемся всплывающем окне. Я пробовал различные методы jQuery, а также getElementById прямо, и все возвращают NULL. Ниже приводится содержание notification.html:
<html>
<head>
<script type="text/javascript">
$(document).ready(function() {
alert($(document).html());
alert($("#divNotification").html());
alert(document.getElementById("divNotification"));
});
</script>
</head>
<body>
<div id="divNotification" onclick="$(this).toggle();">
<h3>Some Notification!</h3>
Testing 1234...
</div>
</body>
</html>
Я вижу три предупреждения, так что я знаю, что JQuery работает, но все три предупреждения просто показать «NULL». Если я нажимаю на полученный div, то onClick срабатывает, но я получаю ошибку «Object Expected».
Что здесь происходит?
В вашей демонстрации jQuery не входит. –
Вы пытаетесь получить html документа, используя '$ (document) .html()'.Вы должны использовать '("html"). Html()'. Это приводит к тому, что первое предупреждение возвращает null. Другие два могут быть вызваны тем, что DOM не готов к тому моменту, когда вы попытаетесь получить к нему доступ. Попробуйте добавить таймаут, чтобы задержать их. –
Rob - jQuery включен в родительскую страницу, которая, по-видимому, позволяет ему работать во всплывающем окне. (Или, может быть, нет?) В любом случае, не имеет значения, добавляю ли я также тег script для ref jQuery в notification.html – RMD