Varför fungerar inte detta jag vill definera en variabel i asp som skrivs ut av java document write beroende på var man har för webläsare?
<SCRIPT LANGUAGE="javascript">
<!--This is one of many scripts which are available at: *---
//--http://www.JavaScript.nu/javascript *---
//--This script is FREE, but you MUST let these lines *---
//--remain if you use this script. *---
//***---Ange vilken text som ska komma fram om man har vilken webbläsare: Netscape Navigator 3, 4 - Internet Explorer 3, 4, 5 - Opera - Annan webbläsare
nn3="Du använder <B>Netscape Navigator 3</B>.";
nn4="Du använder <B>Netscape Navigator 4</B>.";
ie3="Du använder <B>Internet Explorer 3</B>.";
ie4="Du använder <B>Internet Explorer 4</B>.";
ie5="Du använder <B>Internet Explorer 5</B>.";
opera="Du använder <B>Opera</B>.";
annan="Du använder en för mig okänd webbläsare.";
webblasarversion=parseInt(navigator.appVersion)
webblasare=navigator.appName
if (webblasare == "Microsoft Internet Explorer") {
if (webblasarversion=="2") {
document.write(ie3);
} else {
if (navigator.appVersion.indexOf("MSIE 5") != -1)
{
//document.write("<%weblasare = ie5%>");
document.write("<%webreader = ie5%>");
}
else
{
document.write(ie4);
}
}
} else if (webblasare == "Netscape") {
if (webblasarversion=="4") {
document.write(nn4);
} else {
if (navigator.userAgent.indexOf("Opera") == -1)
{
document.write(nn3);
}
else
{
document.write(opera);
}
}
} else {
document.write(annan);
}
//-->
</SCRIPT>
<%Response.Write webreader%>
Jag håller på att göra lite enkel statistik till min hemsida som jag ska spara ner i en databas.
Därför behöver jag först köra javascripten och sedan låta javascriptet skriva ner värdet som
skall köras ner i databasen.
Problemet är att den inte gör som jag tänkt. Vet inte om det går att blanda in ASP-script mitt i javakoden?
I koden nedan så specificerar jag hur jag vill att det ska funka.. men den skriver ut den som är längst ned. Typ att jag har upplösning 1024 och enligt koden nedan så skriver den att jag har 1280. Men tar jag bort asp prylarna <% och %>
runt värdet så skriver den det korrekt?
Finns det nån smart lösning på detta?
<SCRIPT LANGUAGE="javascript">
<!--This is one of many scripts which are available at: *---
//--http://www.JavaScript.nu/javascript *---
//--This script is FREE, but you MUST let these lines *---
//--remain if you use this script. *---
skarm=0
webblasarversion=parseInt(navigator.appVersion)
webblasarnamn=navigator.appName
if (webblasarversion >= 3) {
if (webblasarnamn == "Microsoft Internet Explorer")
{
skarm = screen.width
} else {
if(navigator.javaEnabled())
{
ta_reda_pa=java.awt.Toolkit.getDefaultToolkit()
storlek=ta_reda_pa.getScreenSize()
skarm = storlek.width
}
}
if(skarm == "640")
{
document.write("<B>Din skärmupplösning är på 640*480.</B>");
}
else if(skarm == "800")
{
document.write("<%upplosning = 800%>");
}
else if(skarm == "1024")
{
document.write("<%upplosning = 1024%>");
}
else if(skarm == "1280")
{
document.write("<%upplosning = 1280%>");
}
else
{
document.write("<B>Din skärmupplösning är okänd för mig.</B>");
}
}
//-->
</SCRIPT>
<%Response.Write webreader%>
Nej det går inte eftersom att alla ASP koder körs innan sidan med Javascript skickas till användaren. Alternativet är att skicka användaren till en sida med upplösningsinfon i QueryString och sen med ASP tolka det.
Sen så tycker jag inte att scriptet var så lyckat eftersom att det finns de med upplösningar på 832x624 (tror det var det), 1600x1200 och andra upplösningar. Ska se om jag kan fixa till det lite...
<script language="Javascript">
<!--This is one of many scripts which are available at: *---
//--http://www.JavaScript.nu/javascript *---
//--This script is FREE, but you MUST let these lines *---
//--remain if you use this script. *---
skarm=0
webblasarversion=parseInt(navigator.appVersion)
webblasarnamn=navigator.appName
if (webblasarversion >= 3) {
if (webblasarnamn == "Microsoft Internet Explorer")
{
skarm = screen.width
} else {
if(navigator.javaEnabled())
{
ta_reda_pa=java.awt.Toolkit.getDefaultToolkit()
storlek=ta_reda_pa.getScreenSize()
skarm = storlek.width
}
}
if(skarm >= "1280")
{
var upplosning = 1280;
}
else if(skarm >= "1024")
{
var upplosning = 1024;
}
else if(skarm >= "800")
{
var upplosning = 800;
}
else if(skarm >= "640")
{
var upplosning = 640;
}
else
{
var upplosning = unknown;
}
}
location.href = "sida.asp?upplosning=" + upplosning;
//-->
</script>
Sen kan du ju bara använda <%upplosning = Request.QueryString("upplosning")%> på sidan sida.asp.
Men hur gör jag om jag vill ha flera grejjer.. flera javascript som skall köras?
Det jag vill ha är:
skärmupplösning, browser, operativsystem, färger
jag har försökt såhär nu men jag vet inte vad jag ska byta ut document.write mot?
<html>
<script language="Javascript">
<!--This is one of many scripts which are available at: *---
//--http://www.JavaScript.nu/javascript *---
//--This script is FREE, but you MUST let these lines *---
//--remain if you use this script. *---
skarm=0
webblasarversion=parseInt(navigator.appVersion)
webblasarnamn=navigator.appName
if (webblasarversion >= 3) {
if (webblasarnamn == "Microsoft Internet Explorer")
{
skarm = screen.width
} else {
if(navigator.javaEnabled())
{
ta_reda_pa=java.awt.Toolkit.getDefaultToolkit()
storlek=ta_reda_pa.getScreenSize()
skarm = storlek.width
}
}
if(skarm >= "1280")
{
var upplosning = 1280;
}
else if(skarm >= "1024")
{
var upplosning = 1024;
}
else if(skarm >= "800")
{
var upplosning = 800;
}
else if(skarm >= "640")
{
var upplosning = 640;
}
else
{
var upplosning = unknown;
}
}
//KOLLAR VILKEN WEBBLÄSARE MAN HAR
webblasarversion=parseInt(navigator.appVersion)
webblasare=navigator.appName
if (webblasare == "Microsoft Internet Explorer") {
if (webblasarversion=="2") {
var weblasare = ie3;
//document.write("ie3");
} else {
if (navigator.appVersion.indexOf("MSIE 5") != -1)
{
var weblasare = ie5;
//document.write(ie5);
}
else
{
var weblasare = ie4;
//document.write(ie4);
}
}
} else if (webblasare == "Netscape") {
if (webblasarversion=="4") {
var weblasare = nn4;
//document.write(nn4);
} else {
if (navigator.userAgent.indexOf("Opera") == -1)
{
var weblasare = nn3;
//document.write(nn3);
}
else
{
var weblasare = opera;
//document.write(opera);
}
}
} else {
var weblasare = unknown;
//document.write(annan);
}
//VISAR HUR MÅNGA FÄRGER BESÖKAREN HAR INSTÄLLT.. UPPLÖSNING
<!--This is one of many scripts which are available at: *---
//--http://www.JavaScript.nu/javascript *---
//--This script is FREE, but you MUST let these lines *---
//--remain if you use this script. *---
skarm=0
if (screen.colorDepth)
{
skarm = screen.colorDepth
}
//***---Nedan anger du vad som ska visas då man har vilken upplösning.
if(skarm == "32")
{
visaText=("Din skärmupplösning är på 32 bitar (4G färger).");
}
else if(skarm == "24")
{
visaText=("Din skärmupplösning är på 24 bitar (16M färger).");
}
else if(skarm == "16")
{
visaText=("Din skärmupplösning är på 16 bitar (65k färger).");
}
else if(skarm == "8")
{
visaText=("Din skärmupplösning är på 8 bitar (256 färger).");
}
else if(skarm == "4")
{
visaText=("Din skärmupplösning är på 4 bitar (16 färger).");
}
else if(skarm == "0")
{
visaText=("Jag vet inte vad du har för skärmupplösning."); //Webbläsaren talar inte om skärmupplösningen
}
else
{
visaText=("Jag vet inte vad du har för skärmupplösning."); //Skärmupplösningen har angetts, fast den är ingen av de vi skrivit ovan
}
document.write(visaText);
//VISAR VILKET OPERATIVSYSTEM MAN HAR
<!--This is one of many scripts which are available at: *---
//--http://www.JavaScript.nu/javascript *---
//--This script is FREE, but you MUST let these lines *---
//--remain if you use this script. *---
//***---Ange vilka sidor man ska komma till om man har Windows, Unix eller Macintosh
win95="Du använder <B>Windows 95</B>.";
win98="Du använder <B>Windows 98</B>.";
win2000="Du använder <B>Windows 2000</B>.";
winnt="Du använder <B>Windows NT</B>.";
annanwin="Du använder <B>Windows</B>.";
unix="Du använder <B>Unix</B>.";
mac="Du använder <B>Macintosh</B>.";
annat="Du använder ett för mig okänd operativsystem.";
webblasare=navigator.appVersion;
if (webblasare.indexOf("Unix")!=-1)
{
document.write(unix);
}
else if (webblasare.indexOf("Mac")!=-1)
{
document.write(mac);
}
else if (webblasare.indexOf("Windows 98")!=-1 || webblasare.indexOf("Win98")!=-1)
{
document.write(win98);
}
else if (webblasare.indexOf("Windows 95")!=-1 || webblasare.indexOf("Win95")!=-1)
{
document.write(win95);
}
else if (webblasare.indexOf("Windows NT 5.")!=-1)
{
document.write(win2000);
}
else if (webblasare.indexOf("Windows NT")!=-1)
{
document.write(winnt);
}
else if (webblasare.indexOf("Win")!=-1)
{
document.write(annanwin);
}
else
{
document.write(annat);
}
//location.href = "testjava.asp?upplosning=" + upplosning;
location.href = "testjava.asp?upplosning=" + upplosning, "&weblasare=" + weblasare, "&farger=" + farger, "&operativ=" + operativ;
//-->
</script>
</html>