ウェブサイトで nicescroll jquery プラグインを使用しています。また、検索ページで Google のカスタム検索も使用しています。カスタム検索には結果のみのインターフェイスがあり、検索結果が<div>
.
nicescroll はこのように動作し、ページにスクロールバーが必要な場合は表示されます。ページにスクロールバーが必要ない場合は、スクロールバーは表示されません。
マスターページでスクリプト タグを使用して jquery および nicescrolll ライブラリを呼び出し、検索ページでスクリプト タグを使用して Google のカスタム検索スクリプトをロードしています。
問題は、IE では (Google のカスタム検索は結果を読み込むのに時間がかかるため) スクロールバーが表示されないことです (検索の結果が得られないため、最初はページにスクロールバーが必要ないためだと思います)。 'まだ表示されていません!しかし、結果が表示された後でも、IE にはまだスクロール バーがありません)。IE ウィンドウのサイズを変更して元のサイズに戻すと、スクロール バーが表示されることに気付きました。コード:
//these scripts load in my master page(since I need the scrollbar for my other pages)
<script type="text/javascript" src="/Scripts/jquery-1.7.1.js"></script>
<script type="text/javascript" src="/Scripts/jquery.nicescroll.js"></script>
<script type="text/javascript">
$(window).load(function () {
$("html").niceScroll();
}
);
</script>
//this script loads in my search.aspx page where I want the search results to appear
<script type="text/javascript">
$(document).ready(function () {
(function () {
var cx = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
'//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
});
//and here's how I am showing the results
<div id="searchWrapper">
<gcse:searchresults-only></gcse:searchresults-only>
</div>
ご覧のとおり、nicescroll スクリプトは後でwindow.load
発生するため、イベントに配置しようとしましたがdocument.ready
、それでも問題は存在します!!
ps:私の検索ページは chrome と firefox で正常に動作しています。この問題は IE でのみ発生します。
私の問題についてのアイデアはありますか?