Domanda

Ho il seguente codice JavaScript per far apparire una finestra in Internet Explorer. Il codice viene eseguito da una pagina all'interno di una finestra di dialogo modale di Microsoft CRM. (RequestID è una stringa che è sempre la stessa nel sistema di test - al momento contiene " abcdefg " - senza virgolette).

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

Mi aspetto di vedere un messaggio che mi dice che sto per aprire una finestra. Mi aspetto quindi di vedere una finestra aperta e ricevere un altro messaggio sulla finestra che è stata aperta. Non mi interessa davvero l'ordine degli ultimi due eventi; gli avvisi ci sono, quindi so che il codice è stato eseguito.

Ho due PC e un PC virtuale. Tutti con IE7 in esecuzione. Sul VPC di Windows 2003, i messaggi e il popup vengono visualizzati ogni volta senza errori.

Sul PC Vista e su WinXP, i messaggi vengono visualizzati ma il pop-up appare solo in modo intermittente. (Penso che questo potrebbe essere il caso anche sul PC Vista).

Tutti e tre hanno impostazioni identiche in IE. Tutti hanno il blocco popup IE disabilitato e non sono installati altri blocchi pop-up.

Qualcuno può far luce su questo?

È stato utile?

Soluzione

Ah, penso di averlo capito ... mancato nella descrizione ...

Stai tentando di aprire una finestra non modale da una finestra di dialogo modale in IE .

Questo AFAIK, non dovrebbe funzionare.

Prova invece ad aprire un'altra finestra modale.

In effetti stai dicendo ...

nella finestra A, apri la finestra modale B, ora apri la finestra non modale C, che non è realmente valida.

Altri suggerimenti

Questo codice è semplice. Usa il debugger e guarda cosa sta succedendo.

Controlla quel sito con FireFox o Chrome, hanno debugger JS.

Modifica

Aggiungi il blocco try / catch attorno a window.open () e vedi se c'è qualche eccezione lì.

Modifica 2:

Ora vedo che stai inviando caratteri come RequestId. È necessario verificare se tale URL può gestire quel tipo di valore. Dato che il nome è RequestId , direi che ci sono grandi probabilità che ci sia un solo parametro numerico. Se ciò è corretto, allora può succedere che il lato server si arresti in modo anomalo quando si tenta di aprire la finestra e quindi non accade nulla. Ragiona di più per impostare try / catch block e test.

Potresti provare Firebug Lite, che funzionerà con IE.

http://getfirebug.com/lite.html

Anche il tentativo / cattura menzionato da altre persone è una buona idea. Penso.

Inoltre, c'è qualche possibilità che il pop-up stia tentando di usare una finestra che è già aperta ma ridotta a icona. Quindi non sembra funzionare, ma sta semplicemente ricaricando la finestra ridotta a icona?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top