webForumDet fria alternativet

hmmm???

16 svar · 532 visningar · startad av prey

preyMedlem sedan jan. 2002369 inlägg
#1

Jag skulle vilja göra en startsida till min dator. På den ska det stå om jag är ansluten till internet eller inte...

Eftersom att min ISP är Telia ADSL, tror jag att det lättaste sättet att få reda på om man e ansluten eller inte att "leta upp en fil eller bild på internet". Alltså: Om Scriptet inte kan hitta filen/bilden ska texten "inte ansluten" dyka upp istället.

Någon som har ett förslag på hur man kan göra?? Mkt tacksam för svar!! Skulle nämligen behöva en sådan funktion, eftersom att min internetanslutning används av flera olika datorer, fast på "samma inloggning".

beikerMedlem sedan juli 200185 inlägg
#2

du kan inte kolla vad som finns på datorn genom klientsideskript... däremot kan du ju göra ett lager som har en bild i sig som ligger nånstans på internet och sätt inte width och height på den, bilden måste ha annan storlek än defaultbilden som blir när browsern inte hittar en bild... sen kan du ju kolla om lagrets bredd är lika med bilden på internet.. om den inte är det så är du offline... typ

<div id="kamel"><img src="http://bilder.nu/image.gif"></a></div>

sen på javascript onload:

if(document.getElementById('kamel').offsetWidth != correctWidth) //gör nåt skojsigt

preyMedlem sedan jan. 2002369 inlägg
#3

tackar!

preyMedlem sedan jan. 2002369 inlägg
#4

Hjälp!

Jag får inte fram någrea värden, vad gör jag för fel??

	<div id="lokal"><img src="rad.JPG"></div>
	<div id="www"><img src="http://www.favoritens-webbdesign.net/te2a/public/upload/rd.JPG"></div>

	<script language="JavaScript"><!--

		var wbild = document.getElementById('www').offsetWidth;
		var lbild = document.getElementById('lokal').offsetWidth;

		if(wbild != lbild) {
			alert("Ingen anslutning, Du måste logga in!");
		}

		document.write(wbild);
		document.write(" . ");
		document.write(lbild);

		//-->
	</script>

De tre sista raderna är bara en kontroll, de skriver att värdena för båda variablerna är 0.. varför??

Här är bilden (som är 40 pxl bred, tror jag):
http://www.favoritens-webbdesign.net/te2a/public/upload/rad.JPG

beikerMedlem sedan juli 200185 inlägg
#5

Checken måste ske efter att sidan har laddats, det gör du med en onload i body-taggen. Du behöver inte kolla någon bild som ligger lokalt, den kommer ju alltid hittas. Välj en bild på internet som finns på en sajt som du vet alltid är online, i exemplet valde jag googles logga. Kolla hur stor den bilden är, när sidan har laddats kollar du om bilden har rätt storlek, annars är du offline. Exemplet nedan bör funka:

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title> ::::</title>

<script language="JavaScript">
<!--
function checkStatus(){
	//kollar om bilden har fel storlek, du har kolla hur stor bilden ska vara
	if(document.getElementById('www').offsetWidth < 278){
		message = "Du är offline!!!";
	}
	//om bilden har rätt storlek betyder det att browsern hittade den på internet
	else{
		message = "Du är online.";
	}
	//skriver ut meddelandet till en div
	document.getElementById('status').innerHTML = message;
}
//-->
</script>
</head>

<body bgcolor="#ffffff" onload="checkStatus();"">

	<div id="www" style="position:absolute;visibility:hidden;"><img src="http://www.google.com/images/logo.gif" border="1"></div>
	<div id="status"></div>

</body>
</html>
pirroMedlem sedan aug. 2001216 inlägg
#6

ja fixade de i asp...

Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://login1.telia.com/sd/create_session_window", False
objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing

Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "<FONT COLOR=""#FF0000"">.*</B><FONT COLOR=""#FFFFFF"">"
Set hittade = objRegExp.Execute(strHTML)
Response.write("<font face='Verdana' size='1' color='#000000'>Internet: ")
if  hittade.count = 0 then
Response.Write("<font face='Verdana'  color='#ff0000'><b>Ej Aktiv</b></font><br><a href=""http://login1.telia.com"" target=""_blank"">Login to internet</a>")
else
For each item in hittade
Response.Write("<font face='Verdana' color='#009900'><b>Aktiv</b> </font>")
Next
Response.Write("</font>")
end if
JojoxxMedlem sedan juni 20004 306 inlägg
#7

Det går faktiskt att fixa även på klientsidan med ett active-x objekt för IE eller en signerat script i NS, men självklart skall du köra ASP om du kan.

pirroMedlem sedan aug. 2001216 inlägg
#8

Kanske

preyMedlem sedan jan. 2002369 inlägg
#9

En liten fråga bara... För att kunna köra ett .asp skript måste jag välha sidan på en server som stöder asp? Å tyvärr är denna datorn bara en "vanlig" dator, inget xtra. Fungerar det i alla fall? Kan jag radera den "cachade" bilden ur Temp. Int. Files genom JavaScript lr nåt?

preyMedlem sedan jan. 2002369 inlägg
#10

Kan man använda eval() funktionen på något sätt kanske?

JojoxxMedlem sedan juni 20004 306 inlägg
#11

Här är det lilla exemplet jag pratade om;

function getHTTPStatus(url) {
	if (document.layers && navigator.javaEnabled()){
		if ((location.host == '') || (url.indexOf(location.host) == -1)){ netscape.security.PrivilegeManager.enablePrivilege('UniversalConnect'); }
		var urlObj = new java.net.URL(url); var port = (urlObj.getPort()>0)?urlObj.getPort():80;
		var socket = new java.net.Socket (urlObj.getHost(),port);
		var dos = new java.io.DataOutputStream(socket.getOutputStream());
		dos.writeBytes('HEAD ' + urlObj.getFile() + ' HTTP/1.0\r\n\r\n'); 
		var dis = new java.io.DataInputStream(socket.getInputStream());
		var data = dis.readLine();
		dis.close(); dos.close(); socket.close();
		var re = /(HTTP\/[\d\.]+) (\d\d\d) ?(.*)$/i;
		var match = re.exec(data);
		return match[2];
	} else if (document.getElementById && window.ActiveXObject) {
		var http = new ActiveXObject('Microsoft.XMLHTTP');
		http.open('HEAD', url, false);
		http.send();
		return http.status;
	} else {
		return false;
	}
}
if(getHTTPStatus('urlen till bilden/sidan som skall kollas')=='200'){
   // sidan finns/är inline, allt ok
} else {
   // ... eller inte
}
preyMedlem sedan jan. 2002369 inlägg
#12

Ska jag lägga allt i <head>?

Koden fungerar med "online", men när jag är offline dyker ett felmeddelande upp som säger at felet ligger i rad 143:

 http.open('HEAD', url, false);
preyMedlem sedan jan. 2002369 inlägg
#13

Ska jag ha någonting som heter nåt speciellt? ett lager lr så?

preyMedlem sedan jan. 2002369 inlägg
#14

Här är sidan:

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>Startsidan f&ouml;r Internet Explorer</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.table {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-style: normal; line-height: normal; font-weight: normal; color: #CCCCCC; text-decoration: none}
body { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-style: normal; line-height: normal; font-weight: normal; color: #CCCCCC; text-decoration: none ; background-color: #336699}
a:link {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-style: normal; line-height: normal; font-weight: normal; color: #000033; text-decoration: none}
a:visited { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-style: normal; line-height: normal; font-weight: normal; color: #000033; text-decoration: none }
a:hover { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-style: normal; line-height: normal; font-weight: bold; color: #9A0000; text-decoration: none }
a:active { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-style: normal; line-height: normal; font-weight: bold; color: #330000; text-decoration: none }
.form	{font-family:Verdana, Arial, Helvetica, sans-serif;; font-size: 10px; font-style: normal; line-height: normal; font-weight: normal; color: #CCCCCC; text-decoration: none; background-color: #006699; border: 1px #CCCCCC solid}
.goto {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-style: normal; font-weight: normal; color: #000033; text-decoration: none; background-color: #336699; border: #99CCFF; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px}
.adressfalt {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-style: normal; font-weight: normal; color: #000033; text-decoration: none; background-color: #336699; border: #99CCFF solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px}
.gotoButton { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-style: normal; font-weight: bold; color: #000033; background-color: #336699; border: 1px #99CCFF outset}
-->
</style>
<!-- KLOCKAN -->
<script language="JavaScript">
<!--
function show2(){
	if (!document.all&&!document.getElementById)
	return
	thelement=document.getElementById? document.getElementById("tick2"): document.all.tick2
	var Digital=new Date()
	var year=Digital.getYear()
	var month=Digital.getMonth()
	var day=Digital.getDay()
	var hours=Digital.getHours()
	var minutes=Digital.getMinutes()
		if (month<=9)
		month="0"+month
		if (day<=9)
		day="0"+day
		if (hours<=9)
		hours="0"+hours
		if (minutes<=9)
		minutes="0"+minutes
	var ctime=hours+":"+minutes
	var cdate=year+"-"+month+"-"+day
	thelement.innerHTML=ctime+"<!--<br>"+cdate+"-->"
	setTimeout("show2()",1000)
	}
	window.onload=show2

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_jumpMenuGo(selName,targ,restore){ //v3.0
  var selObj = MM_findObj(selName); if (selObj) MM_jumpMenu(targ,selObj,restore);
}

function adress() {
  if (adressfield.value != "") {
	  window.status = "Söker efter adressen...";
 	  eval("parent.location='http://"+adressfield.value+"'");
  }
}

	function TeliaLogin(){
		var targetURL = 'http://login1.telia.com';
		parent.location = targetURL;
	}

	function Timer(){
		var sekund=7;
		var targetURL="http://login1.telia.com";

		if (sekund!=1){
		sekund-=1

			var msgSTATUS='Du är OFFLINE! Om ' + sekund + ' sekunder kommer du att skickas till ' + targetURL;
			var msgHTML='<font color="#FF0000" size="2">Du är OFFLINE!!!</font><br><font color="#FF0000" size="1">Om ' + sekund + ' sekunder kommer du att skickas till inloggningssidan.';

			document.getElementById('status').innerHTML = msgHTML;
			window.status = msgSTATUS;
		}
		else{
			window.location=targetURL;
			return
		}
		setTimeout("Timer()",1000)
	}

	function checkStatus(){
		
		//Skriver ut på sidan (innan kontrollen görs)
		//msgHTML = '<font color="#333333" size=1>Klart...</font>';
		//document.getElementById('status').innerHTML = msgHTML;
	
		//kollar om bilden har fel storlek, du har kolla hur stor bilden ska vara
		if(document.getElementById('onlinebild').offsetWidth < 40){
	
			msgHTML = '<font color="#FF0000" size="2">Du är OFFLINE!!!</font>';
			msgSTATUS = "Du är OFFLINE!";
			alert("Du är OFFLINE. För att använda internet måste du logga in på Telia Bredband");
			//Timer();
			msgHTML +='<br><br><input type=button value="Logga in" onClick="TeliaLogin();" style="font-family:Verdana;font-size:10px;color:#7777FF;">';
		
		}

		//om bilden har rätt storlek betyder det att browsern hittade den på internet
		else {
			msgHTML = '<font color="#00FF00" size="2">Du är ONLINE.</font>';
			//var bredd = document.getElementById('onlinebild').offsetWidth;
			//var hojd = document.getElementById('onlinebild').offsetHeight;
			//msgHTML +=bredd;
			msgSTATUS = "Du är ONLINE.";
		}

		//skriver ut meddelandet till en div & till statusfältet
		window.status = msgSTATUS;
		document.getElementById('status').innerHTML = msgHTML;
	}

function getHTTPStatus(url) {
	if (document.layers && navigator.javaEnabled()){
		if ((location.host == '') || (url.indexOf(location.host) == -1)){ netscape.security.PrivilegeManager.enablePrivilege('UniversalConnect'); }
		var urlObj = new java.net.URL(url); var port = (urlObj.getPort()>0)?urlObj.getPort():80;
		var socket = new java.net.Socket (urlObj.getHost(),port);
		var dos = new java.io.DataOutputStream(socket.getOutputStream());
		dos.writeBytes('HEAD ' + urlObj.getFile() + ' HTTP/1.0\r\n\r\n'); 
		var dis = new java.io.DataInputStream(socket.getInputStream());
		var data = dis.readLine();
		dis.close(); dos.close(); socket.close();
		var re = /(HTTP\/[\d\.]+) (\d\d\d) ?(.*)$/i;
		var match = re.exec(data);
		return match[2];
	} else if (document.getElementById && window.ActiveXObject) {
		var http = new ActiveXObject('Microsoft.XMLHTTP');
		http.open('HEAD', url, false);
		http.send();
		return http.status;
	} else {
		return false;
	}
}
//-->
</script>
<!-- SLUT KLOCKAN-->
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="2" height="100%" name="mainTable" align="center" class="table">
  <tr> 
    <td height="31"><!--VISAR VECKA--><span id=tick2></span><br>

<!--VECKA-skript-->
	<SCRIPT Language="JavaScript">
	<!--
	function weekNo() {
	  var totalDays = 0;  		
	  now = new Date();
	  years=now.getYear()
	  if (years < 1000)
	  years+=1900
	  var days = new Array(12);	// Array to hold the total days in a month
	  days[0] = 31;
	  days[2] = 31;
	  days[3] = 30;
	  days[4] = 31;
	  days[5] = 30;
	  days[6] = 31;
	  days[7] = 31;
	  days[8] = 30;
	  days[9] = 31;
	  days[10] = 30;
	  days[11] = 31;
	
	  //  Check to see if this is a leap year
	
	   if (Math.round(now.getYear()/4) == now.getYear()/4) {
	     days[1] = 29
	  }else{
	     days[1] = 28
	  }
	
	//  If this is January no need for any fancy calculation otherwise figure out the
	//  total number of days to date and then determine what week
	
	  if (now.getMonth() == 0) {		
	     totalDays = totalDays + now.getDate();
	  }else{
	     var curMonth = now.getMonth();
	     for (var count = 1; count <= curMonth; count++) {
	         totalDays = totalDays + days[count - 1];
	     }
	     totalDays = totalDays + now.getDate();
	   }
	   var week = Math.round(totalDays/7);
		//MIN RAD
		var week = week + 1;
	   return week;
	}
	document.write("Vecka "+weekNo())

	// -->
	</SCRIPT>
<!--SLUT VECKA-skript-->

	</td>
  </tr>
  <tr>
    <td align="center" valign="middle"> 
      <p>Adressfält...<br>
	[url]http://[/url]<input name="adressfield" class="adressfalt">
	<input type="submit" value="Gå till..." class="gotobutton" onClick="javascript:adress();">
      </p>
      <p><a href="http://www.altavista.se/">Altavista.se</a><br>
        <a href="http://www.google.com/">Google.com</a><br>
        <a href="http://www.download.com/">Download.com</a><br>
        <a href="http://www.sl.se/">SL</a>br>
        <a href="http://www.evighet.net/">evighet.net/</a>
        <br>
        </p>
      <form name="form1" class="goto">
        <select name="meny" onChange="MM_jumpMenu('parent',this,1)" class="goto">
          <option selected value="#">-Välj adress-</option>
        </select>
        <input type="button" class="gotoButton" name="gotobutton" value="->" onClick="MM_jumpMenuGo('meny','parent',1)">
      </form>
      <p>
      <p>
	<table border="0" cellspacing="0" cellpadding="2" width="300">
	 <tr>
	  <td valign="middle" align="center">
<script language="JavaScript">
if(getHTTPStatus('http://www.evighet.net/te2a/public/upload/rad.JPG')=='200'){
   // sidan finns/är inline, allt ok
	alert("OK!");
} else {
   // ... eller inte
	alert("Ej OK!");
}
</script>
<div id="Status"><div>

</td>
</tr>
</table>
</p>
</p>
</td>
</tr>
<tr> 
<td height="31">&nbsp;</td>
</tr>
</table></body>
</html>
JohnsenMedlem sedan juli 2000718 inlägg
#15

Jag har inte läst igenom alla inlägg, så säg till om jag flummar...

Kan man inte bara lägga en liten .js-fil nån' stans på nätet och kolla mot den.

Ex:

filen online.js innehåller: paloggad="Du är påloggad!"

och den lokala sidan innehåller detta:

<script language="JavaScript">paloggad="Du är inte påloggad!"</script>
<script language="JavaScript" src="http://10.46.23.10/online.js"></script>
<script language="JavaScript">document.write(paloggad)</script>
JojoxxMedlem sedan juni 20004 306 inlägg
#16

Prey:
Förutom att forumet ställer till javascript så att det blir med mellanslag i ditt onclick-event funkar sidan bra. JavaScript är dessutom helt onödigt eftersom detta är "default-språket", funktionsanropet räcker gott.

Johnsen:
Det är givetvis en mycket enklare lösning. Bra att någon har huvudet på skaft :)

preyMedlem sedan jan. 2002369 inlägg
#17

=) Ska testa den varianten.. verkar mkt enklare!

Genererad på 384 ms · cache AV · v20260730165559-full.f96bc7eb