Question

J'ai le code JavaScript suivant pour faire apparaître une fenêtre dans Internet Explorer. Le code est exécuté à partir d'une page dans une boîte de dialogue modale Microsoft CRM. (RequestID est une chaîne qui est toujours la même dans le système de test - au moment où elle contient "abcdefg" - sans les guillemets).

var cancelUrl = "CancelRequest.aspx?RequestID=" + RequestID;
alert("About to open a window.\n\n" + cancelUrl);
window.open(cancelUrl);
alert("Window opened");

Je m'attends à voir un message m'indiquant que je suis sur le point d'ouvrir une fenêtre. Je m'attends ensuite à voir une fenêtre s'ouvrir et recevoir un autre message à propos de l'ouverture de la fenêtre. Je ne me soucie pas vraiment de l'ordre des deux derniers événements; les alertes sont là, donc je sais que le code a été exécuté.

J'ai deux PC et un PC virtuel. Tous en cours d'exécution IE7. Sur le VPC Windows 2003, les messages et les fenêtres contextuelles apparaissent chaque fois sans échec.

Sur les ordinateurs Vista et WinXP, les messages apparaissent, mais la fenêtre contextuelle n’apparaît que par intermittence. (Je pense que cela peut aussi être le cas sur le PC Vista).

Tous les trois ont des paramètres identiques dans IE. Le bloqueur de fenêtres publicitaires intempestives IE est désactivé et aucun autre bloqueur de fenêtres contextuelles n’est installé.

Quelqu'un peut-il nous éclairer?

Était-ce utile?

La solution

Ah, je pense que je l’ai compris… ça m’a manqué dans la description…

Vous essayez d'ouvrir une fenêtre non modale à partir d'un dialogue modal dans IE .

Cela, autant que je sache, ne devrait pas fonctionner.

Essayez d'ouvrir une autre fenêtre modale à la place.

En fait, vous dites ...

sur la fenêtre A, ouvrez la fenêtre modale B, ouvrez maintenant la fenêtre non modale C, qui n’est pas vraiment valide.

Autres conseils

Ce code est simple. Utilisez le débogueur et voyez ce qui se passe.

Vérifiez ce site avec FireFox ou Chrome, ils ont des débogueurs JS.

Modifier:

Ajoutez un bloc try / catch autour de window.open () et voyez s'il y a une exception.

Modifier 2:

Je vois maintenant que vous envoyez des caractères en tant que RequestId. Vous devriez vérifier si cette URL peut gérer ce type de valeur. Puisque name est RequestId , je dirais qu'il y a de grandes chances qu'il y ait un paramètre uniquement numérique. Si cela est correct, il peut arriver que le serveur se bloque lorsque vous essayez d'ouvrir une fenêtre, puis rien ne se produit. Reason more to set try / catch block and test.

Vous voudrez peut-être essayer Firebug Lite, qui fonctionnera pour IE.

http://getfirebug.com/lite.html

L’essai / capture par d’autres personnes est également une bonne idée. Je pense.

De plus, y a-t-il un risque que la fenêtre pop-up tente d'utiliser une fenêtre déjà ouverte mais réduite au minimum. Donc, cela ne semble pas fonctionner, mais il s’agit simplement de recharger la fenêtre réduite?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top