2010-04-15 5 views
6

Die Anwendung wird auf einem Windows Server 2003-Feld mit ASP.net 2.0 ausgeführt und ist eine IE-spezifische Webanwendung. Es gibt eine Schaltfläche, die ein Formular in einem iframe mit showModalDialog (...) aus einem Funktionsaufruf im JavaScript öffnet. HierJavaScript-Fehler beim Versuch, ein modales Fenster in einem modalen Fenster zu öffnen

ist ein Beispiel für die Funktion:

function ShowBusinessHoursSubForm(source) 
{ 
    var retval = window.showModalDialog("htm/" + locLocaleID + "/SubFormHostFrame.htm", source, "dialogWidth:265px;dialogHeight:261px;help:no;scroll:no;status:no;"); 

} 

Der Host-Rahmen wird das Laden einer aspx Seite, die die eigentliche Form enthält, verwendet wird. Auf dem geöffneten Formular befindet sich eine Schaltfläche, die beim Klicken auf das Formular übertragen wird. Wenn jedoch keine Änderungen vorgenommen wurden, bevor das Formular gesendet wurde, wird ein weiteres modales Fenster angezeigt, das besagt, dass keine Änderungen am Formular vorgenommen wurden. Dieses modale Fenster wird durch die Registrierung von JavaScript im Schaltflächenklick-Ereignis geöffnet. Der Code ist wie folgt (C#):

string l_S_ErrorScript = "<script type='text/javascript' language='javascript'>window.showModalDialog('htm/" + l_S_Culture + "/NotChangedErrorDialog.htm', '../../" + l_S_SkinPath + "', 'dialogWidth:310px;dialogHeight:145px;scroll:no;help:no;status:no;');</script>"; 

if(!m_Page.ClientScript.IsStartupScriptRegistered("ErrorScript")) 
     { 
      m_Page.ClientScript.RegisterStartupScript(this.GetType(), "ErrorScript", l_S_ErrorScript); 
     } 

Wenn die Schaltfläche geklickt und dieser Dialog muss die folgenden JavaScript-Fehler angezeigt erscheinen:

Error: Object doesn't support this property or method

Die seltsame Sache ist, wenn ich auf die Anwendung zugreifen lokal und versuchen Sie es alles funktioniert gut, aber der Zugriff von einem anderen Computer verursacht den Fehler. Abhängig davon, welcher Server (wir haben viele Server zum Testen alle mit Windows Server 2003), kann der Fehler auch nicht auf einem anderen Computer auftreten. Auf diesen Computern wird die gleiche Softwareversion mit derselben Version von IE mit denselben Einstellungen ausgeführt. Ich bin geneigt zu glauben, dass es irgendwo ein Konfigurationsproblem gibt, aber mit den gleichen Einstellungen ist es schwer zu sagen. Ich kann nicht wirklich ändern, wie die App funktioniert oder die verwendeten Technologien.

Wer hat irgendwelche Ideen, was kann dies verursachen?

Antwort

9

Das Problem war mit dem Popup-Blocker in IE auf dem Clientcomputer. Da das modale Fenster in einem anderen modalen Fenster geöffnet wurde, betrachtete der Popup-Blocker es nicht als Teil des übergeordneten Fensters und dachte, es sollte es blockieren. Nach dem Hinzufügen der Seite zum Popup-Blocker hat alles funktioniert.

Wie lächerlich!