2009-09-03 8 views
1

Webテンプレート用のカスタムポップアップを生成するためにCSSセレクタを使用しています - 基本的に、いくつかのプロデューサーはJSポップアップサイズなどを設定するには簡単な方法が必要です。このアプローチのメリットには本当に関心がありませんが、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他のブラウザのポップアップアラート:ツールバー=いいえ、ディレクトリ=いいえ、サイズ変更=はい、メニューバー=いいえ、スクロールバー=はい、ステータス=いいえ、幅= 800px、高さ= 560px、上= 20、left = 240

Safariの警告:toolbar = no、directories = no、location = no、menubar = no、scrollbars = yes、status = no、width = 0px、height = 0px、上= 20、左= 640

ご理解いただきありがとうございます。

答えて

3
+0

Hmmm、ドキュメントの読み込み時に設定されるアンカーの高さと幅ではありませんか? –

+0

これはキーコンセプトです。「根本的な問題は、WebKitブラウザ(SafariとChrome)がJavaScriptとCSS情報を同時に読み込むためです。このため、CSSのスタイル効果が計算される前にJavaScriptが実行されてしまう可能性があります。 – micahwittman

+0

「場合(jQuery.browser.safari && document.readystateで=! "私は追加" 完了){ \t \t \t //console.info('ready ... '); \t \t \tのsetTimeout(arguments.calleeを、 100); \t \t \tリターン; \t \t \t} " 私はCSSを計算した後に、JavaScriptを実行することを意味するだろうと思いました。しかし、私はまだ間違った答えを得ています。 –

2

Chromeでも動作しません。

this linkthis other Stack Overflow answerのように、Webkitブラウザは、完全に読み込まれるまでWebkitブラウザがサイズとして「0」または「不明」と報告するのは遅すぎる可能性があります。

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

+0

申し訳ありませんが、どのような画像サイズですか?私のページにはイメージがありません...ここにアンカーを扱っています...申し訳ありませんが、アンカーは同じ意味でロードされていますが、それは私には意味をなさないからです。 –

+0

はい - 申し訳ありませんが、私は明らかにすべきです。問題は、micahが言ったように、JavascriptとCSSが並行して読み込まれていることです。画像やアンカーなどです。 –

関連する問題