http://it-dream-qq-com.iteye.com/blog/1310624 由于history.back() 没有返回值,我们很难 知道 我们的 这句话执行了还是没执行,但是 他的执行与否 又影响 我们的 后面的要执行的一些代码, 此文 通过 另外一条路 来达到 判断history.back() 起没起作用的效果。 我们可以知道 history还有一个 成员变量 就是length,他有一个初值, (不了解请去 w3cschool 看看, ) 如果你的 超链接 是 新建一个窗口打开 的链接,那么这个值是不会增加的,同样的 浏览器的自带的 前进,后退也是不管用的,所以我们可以 通过判断 length的 现在 值 是否大于他的初值 来判断 现在 的页面 能不能后退 ,即history.back()能不能起作用; 下面是 几种常见主流 浏览器 的 length 的初值; ie 0 firefox 1 (包括 firefox ,google) opear 0 其他的浏览器 没有细看, 下面的代码 是 如果 history.back() 不起作用 ,就链接到 调用该javascript 的所传参数的地址 function back(myurl){ // 该函数处理二级界面 详细内容显示 右下角的 返回 按钮,现在仅能正确处理ie,firefox,opera,浏览器 var backUrl=myurl; var flag=false; if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0))// 你是使用IE { //alert('你是使用IE') if(history.length>0){ flag=true; history.back(); } } else { if (navigator.userAgent.indexOf('Firefox') >= 0) //你是使用Firefox { //alert('你是使用Firefox'); if(window.history.length>1) { flag=true; history.back(); } } else { if (navigator.userAgent.indexOf('Opera') >= 0) //你是使用Opera { //alert('你是使用Opera') if(history.length>0) { flag=true; history.back(); } } else //你是使用其他的浏览器浏览网页 { //alert('你是使用其他的浏览器浏览网页!') } } } if(flag==false) // { window.location.href =backUrl; } }