天天看點

通過js判斷判斷電腦是否連上網絡

 最近家中晚上經常斷網,通過下面的小程式(其實是我組合了兩個小程式寫的,談不上原創)可以實作聯網時通過播放音樂通知我,不過這其實是由自動訂票通知想到的,由于是上班時間寫的,是以這個程式還有很多不足的地方,不過已經能完成最基本的功能了:

<html>
	<head>
		<title>聯網自動提示器</title>
		<SCRIPT language=JavaScript>
<!--
var millionsecond = 1000;//預設1秒鐘檢查一次
var media;
var player;
var exp;
var playPositionStart;
var totalTime;

function initMedia(url)
{ 
exp=getExp(url);
if(exp=="mp3" || exp=="wma")
{
   var i_player_str = "<OBJECT id=\"player\" codeBase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 type=application/x-oleobject height=0 standby=\"Loading Microsoft? Windows Media? Player components... \" width=0 classid=CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6><PARAM NAME=\"URL\" VALUE=\""+url+"\"><PARAM NAME=\"UIMode\" VALUE=\"full\"><PARAM NAME=\"AutoStart\" VALUE=\"false\"><PARAM NAME=\"Enabled\" VALUE=\"true\"><PARAM NAME=\"enableContextMenu\" VALUE=\"false\"></OBJECT>";
}
else if(exp=="flv")
{
   var i_player_str = "<OBJECT id=\"player\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://active.macromedia.com/flash2/cabs/swflash.cab#version=7,0,0,0\" WIDTH=0 HEIGHT=0><PARAM NAME=movie VALUE=\"swf/flvplayer.swf?url="+url+"\"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED name=\"player\" src=\"swf/flvplayer.swf?url="+url+"\" quality=high bgcolor=#FFFFFF WIDTH=0 HEIGHT=0 TYPE=\"application/x-shockwave-flash\" PLUGINSPAGE=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\"></EMBED></OBJECT>";

}
media=document.getElementById("media");
media.innerHTML=i_player_str;
playobj=document.getElementById("player");

}
//播放音樂
function doplay(){
	if(exp=="mp3" || exp=="wma"){
		playobj.controls.play();
	}else if(exp=="flv"){
		playobj.gotoFrame(7);
	}
}
//得到檔案格式
function getExp(url){
	var tmp=url.split('.');
	return tmp[tmp.length-1];
}

//重寫String的trim方法
String.prototype.trim = function() {
	 return this.replace(/\s/g,"");
}
//傳回通路url的狀态結果
function getUrlState(URL){ 
	if(URL.trim().length==0){
		return false;
	}

	var xmlhttp = new ActiveXObject("microsoft.xmlhttp"); 
	xmlhttp.Open("GET",URL, false);  
	try{  
		xmlhttp.Send(); 
	}catch(e){
	}finally{ 
		var result = xmlhttp.responseText; 
		if(result){ 
			if(xmlhttp.Status==200){ 
				return(true); 
			}else{ 
				return(false); 
			} 
		}else{ 
			return(false); 
		} 
	} 
}

var timer ;
function startUrl(){
	var mp3 = document.getElementById("music").value;
	initMedia(mp3);
	//每隔millionsecond執行一次
	timer =  window.setInterval("checkUrl()",millionsecond);
	
}
//檢查url,相當于ping,如果能ping通就登出Interval同時播放音樂
function checkUrl(){
	if(getUrlState(document.getElementById("url").value)){
		window.clearInterval(timer);
		doplay();
	}
}
//暫停播放
function stopMusic(){
	playobj.controls.pause();
}
//-->

</SCRIPT>

	</head>
	<body>
		<DIV id=media></DIV>
		請選擇音樂:<input type="file" id="music" /><br/>
		請輸入網址:<input type="text" value="http://www.baidu.com/" id="url" /><br/>
		<input type="button" id="start" οnclick="startUrl()" value="開始測試">
		<input type="button" id="start" οnclick="stopMusic()" value="停止音樂">
	</body>
</html>