
教えてください。
画面をリサイズすると画面再表示するようにしたいのですが、
下記のソースでは
IE8で無限ループになります。
どこがおかしいのでしょうか?
どのように直せばいいのでしょうか?
jQuery(document).ready(function () {
var timer = false;
$(window).on("load resize", ReLayout);
function ReLayout(event) {
var _width = $(window).width();
var winWidth_resized;
if(event.type == 'resize') {
if (_width > 767) {
if (timer !== false) {
clearTimeout(timer);
}
timer = setTimeout( disp, 200);
}
}
}
function disp(){
location.href = location.href;
}
});
No.1ベストアンサー
- 回答日時:
通常のブラウザはリサイズすればレイアウトし直すと思いますので、何をなさりたいのかよくわかりませんが…
HTMLのload時に条件判定でdisp()が実行されるような状態の時は無限ループになる可能性があります。
個々のブラウザの挙動を確認してはいませんが、location.href = location.href;でリロードされるようなブラウザであれば、ロードする毎に再ロードすることになるのでは?
簡略化すれば以下のスクリプトとほぼ同じになるので…
window.onload = disp;
load時のイベント処理として実行するのをやめれば、とりあえず無限ループにはならないと思いますが?(リサイズ時のみ動作するようにするという意味です)
しかしながら、そもそもが再読み込みする必要が無いのではないかと思いますけれど…
この回答への補足
回答ありがとうございます。
カルーセルスライダーを使っていたのですが、
画面を小さくしたときにした画面処理が
画面を大きく戻したときにどうしても元に戻らず
強制的にリロードして戻していました。
で、なぜかIE8だけ無限ループになっていました。
おっしゃるとおり
load時にはいりませんね。
ただ、load時を外しても
画面スクロールのたびに
リロードが走ってしまい、
ページ下に行けない状況になってしまいました。
IE8のみリロードしないという逃げ方しかないのでしょうか?
No.2
- 回答日時:
ANo1です。
>画面スクロールのたびにリロードが走ってしまい~
普通はスクロールでリサイズのイベントが発生するとは思えないのですが…?
どこか他のところで、スクロールイベントが発生した際にdisp関数を呼び出している可能性が高いのではないかと想像しますが、そのようなことはありませんか?
>カルーセルスライダーを使っていたのですが、
>画面を小さくしたときにした画面処理が
>画面を大きく戻したときにどうしても元に戻らず
>強制的にリロードして戻していました
どのようなライブラリか不明ですが、内部の変数等の値がそのまま残っている可能性が高いと思います。
もしもユーザ用にAPIが解放されているのなら、リサイズ時に再初期化してあげれば、リロードする必要がなさそうに思いますが…
あるいは自作のものなら、そのように改造するか表示の際に都度サイズを取得するような方法に変えてあげれば、そのままでリサイズに対応できるようになると思います。
お返事遅くなりました。
ご回答いただきましてありがとうございました。
ちょっと、仕様から見直しということになってしまいました。
またお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[Java] Edgeでのアドレスバー非...
-
Javascript使用時に画面にキャ...
-
サブウィンドウを常に最前面に...
-
window.open("about:blank")
-
閉じた後のwindow.closed検知
-
エクセルのシート上に別のシー...
-
デジタル時計の時刻合わせの方...
-
スクリプトって、何ですか?ど...
-
Edge Chrom などの超初心者質問...
-
Outlookでこのような表示がされ...
-
小さな表示窓の呼び方は
-
PDFを(htmlのように)無限に縦...
-
マイページはどこを開くの
-
Excelで1.2行目だけ固定して...
-
ExcelVBAで他のアプリをスクロ...
-
McAfeeのポップアップ
-
デスクトップ画面を4分割するには
-
VBAのユーザーフォームのframe...
-
PDFファイルの向きを縦から横に...
-
Javascript_submit()完了後に処...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[Java] Edgeでのアドレスバー非...
-
ブラウザ Chromeを使っていて、...
-
同じページをブラウザで複数開...
-
window.open("about:blank")
-
画面を閉じる(×ボタンやタスク...
-
opener.focus();が利かない
-
サブウィンドウを常に最前面に...
-
物理の斜方投射で目盛りに数値...
-
alertの最前面表示
-
子画面を自動で閉じた後、親画...
-
「処理中」表示
-
呼び出されたページを閉じ、呼...
-
物理の斜方投射の目盛り線とx軸...
-
ポップアップウインドウの高さ...
-
window.open でなくて 新しいウ...
-
window.open()で幅指定の際、ウ...
-
リロードさせないワザ
-
親ウインドのASPをリロードさせ...
-
閉じた後のwindow.closed検知
-
ホームページビルダーでウイン...
おすすめ情報