2009-07-08 6 views
3

J'ai une page sur laquelle, périodiquement, je dois changer l'URL pour incorporer quelques paramètres GET en arrière-plan en utilisant JavaScript, de sorte que la page se rafraîchit en utilisant les nouveaux paramètres GET.Comment "actualiser" une fenêtre dans IE sans le focus de vol de la fenêtre?

Ainsi, par exemple, je vais régulièrement faire

window.location.href = window.location.host + '?' + ss; 

ou

window.location.search = '?' + ss; 

Où ss 'est la nouvelle chaîne de requête, par exemple: "foo = 3 & bar = 1" . Ces 'actualisations' auront lieu lorsque la fenêtre est en arrière-plan.

Mon problème est que, sur les navigateurs IE, l'actualisation provoque le déplacement de la fenêtre. Y a-t-il moyen d'éviter ou de contourner cela?

+0

Quelle version d'IE? Pourriez-vous juste changer window.location.hash et utiliser AJAX pour mettre à jour la page? – EricLaw

+0

J'ai vraiment besoin de recharger la page, avec les nouveaux paramètres GET. J'ai vu ce comportement sur IE 6 & 7, mais n'ai pas testé 8. – Kyle

Répondre

0

Est-ce que toute la page doit être actualisée? Je pense que si vous IFRAMED le contenu il ne volerait pas le focus. Je n'ai jamais intentionnellement essayé cela avec une fenêtre d'arrière-plan, mais je trouve curieux que IE le fasse. Quelle version fait cela comme je voudrais le reproduire.

+0

J'ai vu ce comportement sur IE 6 & 7, mais n'ai pas testé 8. Facile à répliquer avec une seule ligne de JS appelée après onload. Quelque chose comme ce qui suit: setTimeout (function() {window.location.replace ('http://google.com')}, 5000); La fenêtre va voler le focus quand il appelle "replace" sur IE. Sauvage. – Kyle

+0

Évidemment, "google.com" devrait être précédé par http ... (mon commentaire a été nettoyé par SO) – Kyle

2

Peut-être qu'il serait utile d'utiliser un appel AJAX pour obtenir les nouvelles données, au lieu de recharger une image?

2

J'utiliserais certainement Ajax. Rafraîchir le contenu de cette façon est une meilleure expérience utilisateur, notamment en raison de sa manière asynchrone. De même, ne pas utiliser de paramètres dans l'URL est toujours une bonne pratique si votre site vise à obtenir de bons résultats SERP.

Questions connexes