2009-12-02 10 views
2

Existe-t-il un script pour actualiser le navigateur lorsqu'une page est redimensionnée? Plus précisément, celui qui émule le bouton d'actualisation du navigateur ou F5? J'en ai trouvé deux, mais ils ne font pas tout à fait ce que je cherche;Comment actualiser la page lors du redimensionnement?

<script type="text/javascript"> 
var currheight = document.documentElement.clientHeight; 
window.onresize = function(){ 
    if(currheight != document.documentElement.clientHeight) { 
     location.replace(location.href); 
    }  
} 
</script> 

et

<body onResize="window.location=window.location;"> 

Le problème avec ces deux est qu'ils semblent réinitialiser complètement la page où en utilisant les navigateurs rafraîchir la fonction laisse certains utilisateurs a modifié intact (comme à un hachage spécifique, par exemple,) qui est ce dont j'ai besoin.

Alors, existe-t-il un moyen d'actualiser la fenêtre lors de la redimensionnement avec un script similaire à celui utilisé en cas de clic sur l'actualisation du navigateur? Je ne comprends pas pourquoi il y a même une différence mais c'est le cas.

Merci.

+0

Pourquoi faites-vous cela? Une mise en page correctement réalisée ne devrait pas en avoir besoin. –

+0

La page utilise jquery scrollTo. Il y a deux récipients essentiels côte à côte que le spectateur peut "faire défiler" horizontalement entre au lieu d'être à séparer des pages Web. La façon dont scrollTo est configuré, cependant, il ne vous permet pas de faire défiler verticalement une fois la page redimensionnée. Cela fonctionne quand la page est chargée pour la première fois. J'essaie de trouver un moyen de maintenir la hauteur de défilement verticale correcte une fois que la page est redimensionnée et je ne peux pas penser à une autre façon de le faire que cela. Si vous avez des suggestions, s'il vous plaît partager. –

Répondre

2

Oui, vous voudrez probablement jeter un coup d'œil à certains événements JavaScript. Il y a un événement OnResize.

Voici un lien pour vous aider à démarrer avec des événements:
http://www.devarticles.com/c/a/JavaScript/OnReset-OnResize-and-Other-JavaScript-Events/

En ce qui concerne le rechargement de la page, vous pouvez le faire aussi:
http://www.mediacollege.com/internet/javascript/page/reload.html

En ce qui gardant les valeurs de l'utilisateur, vous pourrait les persister dans une session.

+0

Je suis encore assez nouveau à tout cela ...mais le meilleur que je peux comprendre à partir de ces liens ne me permet que de faire ce que j'ai déjà réalisé avec les scripts de l'OP. Merci pour la contribution si ... –

1

Essayez ceci:

<![if !IE]> <body onresize="document.location=window.location;"> <![endif]> 
<!--[if IE]> <body onresize="window.location.reload();"> <![endif]--> 
2

Voici la solution parfaite:

J'ai inclus délai de 1 sec navigateur IE rafraîchir après 1 seconde de la fenêtre redimensionne

$(window).resize(function() { 
    setTimeout(function(){ 
     window.location.href = window.location.href; 
    },1000); 
}); 

Sans délai

$(window).resize(function() { 
    window.location.href = window.location.href; 
}); 

REMARQUE: Vous pouvez également utiliser
window.location.reload() au lieu de window.location.href = window.location.href

window.location.reload() rechargements la page en cours avec les données POST,
tout
window.location.href=window.location.href ne comprend pas les données POST

- espérons que cela aide

Questions connexes