Witam,
tak jak w temacie, szukam sposobu na przeładowanie strony po zmianie wielkości okna.
Jakby ktoś miał pomysł proszę pisać.
Z góry dzięki.
Witam,
tak jak w temacie, szukam sposobu na przeładowanie strony po zmianie wielkości okna.
Jakby ktoś miał pomysł proszę pisać.
Z góry dzięki.
function checkResolution() {
if (parseInt(navigator.appVersion)>3) {
if (navigator.appName.indexOf("Microsoft")!=-1) {
winW = document.body.offsetWidth;
winH = document.body.offsetHeight;
} else {
winW = window.innerWidth;
winH = window.innerHeight;
}
} else {
return false;
}
return new Array(winW, winH);
}
Zwraca tablicę z rozmiarem X i Y.
Mhm...
document.body.onresize = function (){
window.location.reload();
}
@Demonical Monk:
Chyba coś Ci się pokićkało :). Autor pytał o coś zupełnie innego. W sumie z jego pytania wcale nie wynika, że potrzebuje znać wymiary okna.
Tak przy okazji, na wypadek gdyby kod był Twój, a nie przeklejany: nie "new Array(w, h)", tylko po prostu "[x, y]". Bądźmy ekologiczni!
@bieniomajster:
O ile mi wiadomo, takie podstawianie zdarzenia onresize nie działa. Zamiast "document.body.onresize" powinno być "window.onresize".
dzięki wszystkim za odpowiedź!
Przejrzałem po kolei wszystkie obsługiwane zdarzenia i natrafiłem na to co napisał Keraj i bswierczynski, tzn. zdarzenie onResize :)
W razie jakby ktoś chciał wiedzieć to samo przeładowanie wygląda u mnie następująco:
<body onResize="window.location=window.location;"> .. </body>
Działa w 100% pod każdą z przeglądarek więc polecam ;)
Temat do zamknięcia.
W każdym razie ja bym tego ostrożnie używał, bo przecież odświeża stronę od razu po lekkim resize co czasami może spowodować przestanie rozszerzania (systemowe "odciśnięcie" klawisza) no i zamęczy serwer głupimi zapytaniami. Dlatego to powinno być stosowane z głową i na timerze - jeśli ktoś przesuwa cały czas, to nic nie robisz. Jak wreszcie skończy przesuwać (5 sekund to samo położenie) to odświeżasz stronę...
@Demonical Monk: słuszna uwaga, po co męczyć serwer ;) dopisze dziś timer, thx
Słusznie.. ale myślę, że w 5 sekund to user zdąży kliknąć gdzieś w oknie i zacząć już coś np wpisywać, a tu bach, storna mu się przeładowała.. wkurw:)
No ja daję w przybliżeniu, zawsze trzeba dostosować do ilości formularzy, czasu reakcji usera etc.
Ustaw sobie taki test, niech licznik wświetla na stronie ile czasu mija pomiędzy wywołaniami onresize - i resizuj sobie okno, zobacz co wyjdzie.
Weź mniej więcej średnią z tego pomnożoną przez 2 ustaw sobie jako limit timera :>
Zrobiłem timer i wygląda on następująco:
<html>
<head>
<script type="text/javascript">
var time=0;
var timer;
var timerOn=false;
function doTick(){
document.getElementById('txt').value=time;
time+=1;
if(time >= 4){ // Czas w milisekundach
clearTimeout(timer);
timerOn = false;
window.location=window.location;
}
timer=setTimeout("doTick()",100);
}
function doTimer(){
if (!timerOn){
timerOn=1;
doTick();
}
}
function timerSet(){
time=0;
if(!timerOn) doTimer();
}
</script>
</head>
<body onResize="timerSet()">
<input type="text" id="txt">
</body>
</html>
Jeśli ktoś ma jakieś propozycje co można ulepszyć to chętnie wysłucham ;)