首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

javascript 判断 history.back() 起作用了没有

2012-09-14 
javascript 判断 history.back() 起作用了没由于history.back() 没有返回值,我们很难 知道我们的 这句话执

javascript 判断 history.back() 起作用了没

由于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;
}
}

热点排行