多くのクエリと ajax を含む非常に長いページがあります。これは短縮版です:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1/themes/ui-lightness/jquery-ui.css" type="text/css" />
<style>
#holder{position:relative;}
#waiting{width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index:200; padding-top:20%; text-align:center; background:rgba(255, 255, 255, 0.5);}
#waiting img {width:200px;}
</style>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<script type="text/javascript" src="scripts/jquery.json-2.3.min.js"></script>
<script type="text/javascript" src="scripts/scripts.js"></script>
<script type="text/javascript">
function showStep3(){
$('#waiting').show();
// this is where a ton of jquery including ajax goes
runQuery();
$('#waiting').hide();
}
$(function(){
$('#waiting').hide();
});
</script>
</head>
<body>
<div id="holder">
<div id="waiting"><img src="img/waiting.gif"></div>
<div id="criteria">
whole bunch of HTML
</div>
</div>
</body>
</html>
「これはajaxを含む大量のjqueryが行くところです」とマークされた領域には、 async:false に設定されたいくつかのajax呼び出しがあります(それが違いを生む場合)。
基本的に、ロード時に「待機中」の div を非表示にしてから、関数 showStep3 を開始するときにそれを表示し、たくさんのことを行い、すべてが完了したら非表示にします。
これは Firefox では期待どおりに機能しますが、chrome や IE9 では機能しません。何か案は?