1

私は CSS セレクターを使用して、Web テンプレート用のカスタム ポップアップを生成しています。このアプローチのメリットに興味がありますが、jquery が Safari のアンカーの CSS で定義されている幅と高さを取得できないように見える理由を理解したいと考えています。

参照: http://f1shw1ck.com/jquery_sandbox/csspops.html

私の質問の要点:

セレクターa.popup {width: 800px;height: 560px;}とアンカーの<a href="http://www.metmuseum.org/toah/hd/apol/hd_apol.htm" class="popup">African Rock Art: Apollo 11 Cave Stone (c. 25,500 - 23,500 BCE)</a>理由は

if ($(this).css("width")) {   
windowParams.width = $(this).css("width");
}
if ($(this).css("height")) {   
windowParams.height = $(this).css("height");
}

Safariで両方のプロパティがゼロとして返されますか?

他のブラウザでの onclick ポップアップ アラート: toolbar=no,directories=no,location=no,resizable=yes,menubar=no,scrollbars=yes,status=no,width=800px,height=560px,top=20,left =240

Safari のアラート: ツールバー=いいえ、ディレクトリ=いいえ、場所=いいえ、サイズ変更可能=はい、メニューバー=いいえ、スクロールバー=はい、ステータス=いいえ、幅=0px、高さ=0px、上=20、左=640

理解を助けてくれてありがとう。

4

2 に答える 2

3

アンディは正しいです。ここで提供される解決策があります:

JavaScriptで画像の実際の幅と高さを取得しますか? (Safari/Chrome)

于 2009-09-03T18:00:44.390 に答える
2

Chromeでも機能しません。

このリンクおよびこの他のスタック オーバーフローの回答から、Webkit ブラウザーが完全に読み込まれるまでサイズとして「0」または「不明」を報告することが理由のように見えますが、これは遅すぎる可能性があります。

Micah が指摘しているように、これは Javascript と CSS が並行して読み込まれるためです。つまり、スクリプトが実行されるまでにスタイリングが完全に適用されない可能性があります。

于 2009-09-03T17:55:40.597 に答える