Maison  >  Article  >  interface Web  >  js détermine quand la page ne peut pas être renvoyée et ferme la page Web, sinon compétences history.go(-1)_javascript

js détermine quand la page ne peut pas être renvoyée et ferme la page Web, sinon compétences history.go(-1)_javascript

WBOY
WBOYoriginal
2016-05-16 16:40:071762parcourir

J'ai rencontré une exigence lorsque je travaillais sur un projet Web. Lorsque la page n'a aucun enregistrement d'historique précédent (il s'agit actuellement d'une page nouvellement affichée et ne peut pas effectuer l'opération de retour en arrière, c'est-à-dire history.go(-1)) , cliquez directement sur le bouton retour Fermez la page, sinon revenez à la page précédente.

Le problème rencontré est de savoir s'il existe un historique qui peut être annulé. C'est très gênant car aucune fonction de ce type ne peut être obtenue directement. La seule façon de le faire est via la variable history.length. Cependant, pour IE et non-IE, la valeur de retour de la longueur d'IE est différente, c'est-à-dire : history.length=0, et la longueur de non-IE est 1, j'ai donc écrit une fonction pour implémenter la fonction précédemment requise. Partagez-le avec tout le monde.

/** 
* 返回前一页(或关闭本页面) 
* <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 ); 
} 
} 
}

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn