jQueryを使用してページロード時にdivを非表示にし、後でユーザーのやりとりに基づいて表示するウェブページがあります。SafariでJavaScriptエラーが発生した場合は、時々のみ
私の$(document).ready()
では、これらのdivを非表示にして、これらのdivを表示するトリガ領域のjQueryからclick()
ハンドラに関数をバインドするコードを実行します。後でスクリプトで使用されるHTMLからいくつかの値を取得します。後者が問題の原因です。
このコードは、FirefoxとChrome/Chromiumでうまく動作します(私たちはまだIE用のCSSで作業していますが、JSは私が理解できる限り動作します)。 Safariでは、時間の70%が完璧に動作します。しかし、いくつかのページがロードされるたびに、$(document).ready()
の行にエラーが表示され、JSの実行が停止され、残りのページのHTMLの描画も停止されます。
行は次のとおりです。
var itemCount = document.getElementById('itemCount').innerHTML;
Safariでデバッグコンソールには、 "NULL値" と言います。
<div id="itemCount" style="display:inline">0</div>
、それは、このIDを持つ唯一のアイテムです
:事は(正しいのロードに失敗した後のページの「ソースの表示」から)私はHTMLに以下を参照してください、である(明らかに。)ドキュメントが実際に準備が整う前に、何とかJSが実行されていると思っています。document.getElementById('itemCount')
がnullを返し、それがある場合は少し待っているかどうかを試してみることを考えていましたが、わかりませんこれがうまくいくか、あまり醜い解決策があるかどうか。
私に何か明白なものがないか、何か別の方法で愚かなことを教えてください。
のjQueryのバージョンは何ですあなたは使っていますか? –
申し訳ありません - 1.3.2分 –