Ich bin bei der Arbeit an einem Webprojekt auf eine Anforderung gestoßen, wenn die Seite keinen vorherigen Verlaufseintrag hat (es ist derzeit eine neu geöffnete Seite und kann den Goback-Vorgang nicht ausführen, d. h. „history.go(-1)“). Klicken Sie direkt auf die Schaltfläche „Zurück“, um die Seite zu schließen, andernfalls kehren Sie zur vorherigen Seite zurück.
Das aufgetretene Problem besteht darin, zu beurteilen, ob ein Verlauf zurückgesetzt werden kann. Dies ist sehr problematisch, da es keine solche Funktion gibt, die direkt abgerufen werden kann. Die einzige Möglichkeit, dies zu tun, ist die Variable „history.length“. Für IE und Nicht-IE ist der Rückgabewert jedoch unterschiedlich, dh: History.length = 0, und die Länge von Nicht-IE ist 1, daher habe ich eine Funktion geschrieben, um die zuvor erforderliche Funktion zu implementieren. Teilen Sie es mit allen.
/** * 返回前一页(或关闭本页面) * <li>如果没有前一页历史,则直接关闭当前页面</li> */ function goBack(){ if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0)){ // IE if(history.length > 0){ window.history.go( -1 ); }else{ window.opener=null;window.close(); } }else{ //非IE浏览器 if (navigator.userAgent.indexOf('Firefox') >= 0 || navigator.userAgent.indexOf('Opera') >= 0 || navigator.userAgent.indexOf('Safari') >= 0 || navigator.userAgent.indexOf('Chrome') >= 0 || navigator.userAgent.indexOf('WebKit') >= 0){ if(window.history.length > 1){ window.history.go( -1 ); }else{ window.opener=null;window.close(); } }else{ //未知的浏览器 window.history.go( -1 ); } } }