Kürzlich bin ich auf ein Berechtigungsverwaltungssystem gestoßen. Da das Berechtigungsverwaltungssystem nicht mit dem ursprünglichen Systemstil übereinstimmt, wird ein neues Fenster geöffnet. Das Problem tritt auf, nachdem sich der Administrator abgemeldet hat. Das Fenster zur Berechtigungsverwaltung wird nicht geschlossen. Nachdem sich andere normale Benutzer angemeldet haben, können sie weiterhin das Berechtigungsverwaltungsfenster bedienen.
Vereinfachtes Problem: Wenn sich der Administrator abmeldet oder wenn main.html geschlossen wird, werden alle neu geöffneten Fenster zusammen geschlossen. Das Problem ist gelöst
Schauen Sie sich einfach den Code an:
;Titel hier einfügen< /title>
Neues Fenster öffnen Abmelden< ;/a> ;
<script> ); <br>var win_num = -1; <br><br>//Jedes Mal aufzeichnen, wenn ein neues Fenster geöffnet wird <br>function openNew(uri,param){ <br>win_num = win_num 1; [ win_num] = window.open(uri); <br>} <br><br>//Wenn sich der Benutzer abmeldet, führen Sie die Shutdown-Methode aus. Body fügt onUnload = "closeNews();" hinzu. Wenn das Hauptfenster geschlossen wird, werden alle untergeordneten Fenster geschlossen <br>function closeNews(){ <br>//Berechtigungsverwaltung schließen <br>if(win_Array.length > 0) { <br>for(var i = 0;i <= win_Array.length;i ){ <BR>var win_one = win_Array[i]; <BR>if(win_one != undefiniert){ <BR>win_one.close ( ); <br>} <br>} <BR>} <BR>} <BR><BR>function logOut(){ <BR>//Schließe das untergeordnete Fenster <BR>closeNews(); 🎜> //Abmelden<BR>} <BR><BR></script>
Erklären:
Test: Im Webprojekt gibt es kein Problem mit IE8, IE10, Firefox, Chrome und Opera.
Sobald die main.html-Seite nicht im Wen-Container platziert ist, sondern nur eine statische main.html-Seite ist, hat der IE ein Problem, denn wenn sie statisch ist, öffnet window.open() des IE tatsächlich eine neue Seite Seite, kein neuer Tab. Alle Methoden zum Schließen des Fensters funktionieren nicht mehr.
Die Zeit ist begrenzt und ich habe nicht die Energie aufgewendet, es im Detail zu studieren. Ich hoffe, ein js-Technologieexperte, der weiß, warum, kann mir eine Anleitung geben. Danke noch einmal.