今日この質問をしましたが、正解を出すのが早すぎたと思います。Safariでjqueryを使用してアンカー要素のcssの長さと幅を取得する方法を理解しようとしています。しかし、「0」が返され続けます。これは、CSS がレンダリングされる前に JavaScript が起動しているためであると言われました。これは、Webkit ブラウザーの癖です。
元のページは次のとおりです: http://f1shw1ck.com/jquery_sandbox/csspops-orig.html
ただし、CSS を取得する前に、すべてが完全にレンダリングされるまで待機するように jquery に指示する小さなテストを作成しました。http://f1shw1ck.com/jquery_sandbox/csspops.html
セレクター用
a.popup {
width: 800px;
height: 560px;
}
とhtml
<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); Wonderwerk Cave Stones (c. 8000 BCE)</a>
ページが完成するまで待ってから、それらの寸法を取得します。
$(document).ready(function () {
if (jQuery.browser.safari && document.readyState != "complete"){
//console.info('ready...');
setTimeout( arguments.callee, 5000 );
return;
}
alert($("a.popup").css("width"));
});
「0」がSafariでまだ返されていることを除いて。私はこれを間違った方法で行っていますか、それとも他の原因がありますか?
ありがとう!