私は複数のフレームにまたがる必要があるポップアップウィンドウを持っているので、私はwindow.createPopupを使ってこれを動作させています。ポップアップウィンドウ内の空の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);
}
これはかなりうまく動作するようです:(IE6、7、および8)は、以下
私はポップアップを作成するために使用している機能です。私はポップアップウィンドウが表示されます。問題は、私が何をしても、結果として得られるポップアップウィンドウの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>
私は3つのアラートを参照してくださいので、私はjQueryのが動作していることを知っているが、3つのすべてのアラートは、単に「NULL」を示しています。結果のdivをクリックすると、onClickは発生しますが、 "Object Expected"エラーが発生します。
ここでは何が起こっていますか?
デモでは、jQueryは含まれていません。 –
あなたは '$(document).html()'を使ってドキュメントのhtmlを取得しようとしています。あなたは '( "html").html()'を使用するべきです。これにより、最初のアラートはnullを返します。他の2つは、アクセスしようとするときにDOMが準備ができていないことが原因です。遅延させるためにタイムアウトを追加してみてください。 –
Rob-jQueryは親ページに含まれており、見た目ではポップアップで動作します。 (あるいはそうでないかもしれませんが)どんなレートであれ、notification.htmlのref jQueryにスクリプトタグを追加しても違いはありません – RMD