navigator.onLine无法在Firefor,Safari,Opera中运行?适用于IE,Chrome?

时间:2013-02-19 13:40:06

标签: javascript ajax servlets javascript-events

在我的聊天应用程序中,当Internet连接处于非活动状态时,我需要向用户提供一个暗示吗?

所以我使用了Java脚本 navigator.onLine 。但它适用于IE和Chrome。不在其他浏览器中。

我的Java脚本将是,

function pingAction(){
    if (navigator.onLine) {
        setTime();
        try
        {
            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    var checkMsg = xmlhttp.responseText.toString();


                    if(checkMsg != "null" && checkMsg.length != 0  && checkMsg != null){

                        var stringToArray = new Array;
                        stringToArray = checkMsg.split("<//br//>");
                        var len = stringToArray.length;
                        for(var i=0;i<len-1;i++){
                            //alert(stringToArray[i]);
                            getText(stringToArray[i]);

                        }

                    }
                }
            };

            xmlhttp.open("POST","PingAction",true);
            xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            xmlhttp.setRequestHeader("charset","UTF-8");
            xmlhttp.send("userId="+encodeURIComponent(userId)+"&secureKey="+encodeURIComponent(secureKey)+"&sid="+Math.random());
        }
        catch(err)
        {
            alert(err.description);
        }
    }else{
        //alert("offLine   ...");
        document.getElementById("serverMsg").style.backgroundColor="yellow";
        document.getElementById("serverMsg").innerHTML ="Your Network connection is failed !";
        document.getElementById("serverMsg").style.display="inline";
    }
}

希望你们能给出一个好的解决方案。

提前致谢。

0 个答案:

没有答案