2010-09-07 15 views
0

J'ai un problème avec la mise au point d'une fenêtre. Je suis très nouveau à JavaScript et toute suggestion est appréciée. Veuillez noter que j'essaie ci-dessous problème dans un shell qui remplace de nombreuses fonctions JavaScript. Mon problème: en une seule action "clic", je navigue vers une nouvelle page qui a 2 méthodes JavaScript qui lancent 2 URL externes que je ne possède pas. Par exemple, je lance Yahoo.com et Google.com. My JS lance Yahoo.com dans la fenêtre actuelle (en tant que page de navigation) et Google.com en tant que pop-up. Je veux que la fenêtre de Google.com soit FOCALISÉindépendamment du temps de chargement des deux URLs. Le problème majeur est que je ne peux pas utiliser la fonction setTimeout JS car le comportement de cette fonction est modifié dans le shell et n'est pas utilisable.Pouvez-vous résoudre ce problème de JavaScript: mise au point de la fenêtre pour une fenêtre de chargement plus rapide

Remarque: J'utilise une fonction JS réutilisable personnalisée pour lancer des URL externes et je transmets simplement des valeurs à cette méthode. Donc, je n'ai même pas accès à l'objet fenêtre. Si je peux en quelque sorte réaliser un délai sans utiliser setTimeout, ce sera le cas idéal. Sinon, je devrai remplacer cette fonction JS personnalisée, accéder à l'objet fenêtre. Même si j'ai le contrôle sur ces objets fenêtre pour les URL externes, puisque les temps de chargement sont différents, mettre l'accent sur l'objet fenêtre Google ne me donne pas toujours l'accent sur la fenêtre Google. Désolé si mon explication est mauvaise, j'ai essayé de le rendre simple. Aucune suggestion?? (IE6 & 7)

(Toutes mes excuses pour le titre plein d'esprit.)

Répondre

0

Vous ne pouvez pas garantir le comportement que vous voulez, en général; les navigateurs ne vous laisseront pas.

Safari ignore généralement les demandes de mise au point des fenêtres. Firefox et moi pense Chrome peut être configuré par leurs utilisateurs (pas par votre code) pour autoriser les demandes de mise au point, mais par défaut, ils ne le seront pas.

+0

J'ai juste besoin de faire ce travail dans IE6 et IE7 car ce sont les deux seules versions de navigateur recommandées pour l'application. Je suis conscient qu'aucun des navigateurs ne garantit une focalisation, mais je cherche une solution de contournement, quelque chose de plus proche du comportement requis. – Omi

+1

Eh bien, le problème principal est qu'une fois que vous chargez google.com dans cette fenêtre contextuelle, vous perdrez (presque) complètement le contrôle car son contenu provient d'un domaine différent du vôtre. Ce que * pourrait * fonctionner serait de charger la popup avec votre propre page qui appelle 'window.focus()', puis place 'location.href' sur" http://www.google.com "(ou autre chose). Toutefois, la mise au point de la fenêtre est intrinsèquement fragile, en particulier dans l'interface utilisateur Windows avec mise au point par clic. – Pointy