Avatar billede madssch Nybegynder
02. oktober 2003 - 16:47 Der er 12 kommentarer og
1 løsning

Gemme JacaScript i ASP-variabel

Hej!

Man kan som bekendt ved hjælpe af JavaScript detecte en brugers skærmstørrelse. Jeg gør det med følgende script:

<script>
function screenSize () {
    var width = screen.width;
    var height = screen.height;

    var screenRes = width + "x" + height

    alert(screenRes);
}
</script>

Det jeg gerne vil vide er, hvordan jeg får smidt indholdet af alert'en - screenRes - i en ASP-variabel, så jeg kan sende den videre ned i en database?

På forhånd tak!
Avatar billede netro Nybegynder
02. oktober 2003 - 16:57 #1
self.location.href='dinside.asp?res='+screenRes;

Herefter kan du aflæse din querystring med:

Res = Request.Querystring("res")
Avatar billede netro Nybegynder
02. oktober 2003 - 17:00 #2
<html>
<head>

<script type="text/javascript">
function screenSize () {
    var width = screen.width;
    var height = screen.height;

    var screenRes = width + "x" + height

    self.location.href='dinside.asp?res='+screenRes;
}
</script>

</head>

<body onLoad="screenSize();">

<%
Res = Request.Querystring("res")

If Res <> "" Then Response.Write Res
%>

</body>
</html>
Avatar billede netro Nybegynder
02. oktober 2003 - 17:01 #3
Og så skal du selvfølgelig lige tilpasse det, så siden ikke bliver genindlæst konstant.
Avatar billede madssch Nybegynder
02. oktober 2003 - 17:10 #4
Hmmm... Og hvordan gør jeg det? Som jeg ser det vil siden reloade hele tiden..?
Avatar billede madssch Nybegynder
02. oktober 2003 - 17:13 #5
Jeg er bange for, at dette ikke vil virke.

Det hele skal indgå i et statistiksystem, som kører helt uden at brugeren bemærker det - altså uden redirect's osv.

Ellers skal jeg sende "res" med min QueryString hver gang - Eller smide den i en Session...

Findes der ikke andre metoder..?
Avatar billede netro Nybegynder
02. oktober 2003 - 17:13 #6
F.eks. sådan:
************************


<html>
<head>

<script type="text/javascript">
function screenSize () {
    var width = screen.width;
    var height = screen.height;

    var screenRes = width + "x" + height

    self.location.href='dinside.asp?res='+screenRes;
}
</script>

</head>

<%
Res = Request.Querystring("res")

If Res <> "" Then
  Response.Write "<body>" & Res
Else
  Response.Write "<body onLoad=""screenSize();"">"
End If
%>

</body>
</html>
Avatar billede netro Nybegynder
02. oktober 2003 - 17:14 #7
Du smider da bare ovenstående kode i en iframe, så vil brugeren ikke bemærke en dyt. Du kan IKKE aflæse skærmopløsningen med ASP og er derfor nødt til at redirect'e, hvis du vil have den overført til en ASP-variabel.
Avatar billede madssch Nybegynder
02. oktober 2003 - 17:21 #8
Jeg forstår godt hvad du mener, og det er muligvis også min eneste mulighed - men hvad så med de browsere som ikke forstår "Iframe"? Jeg ved der er flere der ikke gør...

Hmmm... Det ved jeg sq ikke...
Avatar billede madssch Nybegynder
02. oktober 2003 - 17:22 #9
Et andet alternativ kunne være at poppe et nyt vindue som lukker sig selv med dette same igen, men det er efter min bedste overbevisning heller ikke særlig brugervenligt...
Avatar billede netro Nybegynder
02. oktober 2003 - 17:26 #10
Nej, det er det ikke. Og så får du et andet problem, hvis brugeren benytter en popup-killer. Der er måske 0,5% browsere i dag, der ikke forstår iframe, så det burde ikke være det afgørende. Alternativt kan du samtidig bruge ilayer til de rigtig gamle versioner af NS.
Avatar billede madssch Nybegynder
02. oktober 2003 - 17:31 #11
Ja, du har nok ret. Jeg forsøger mig med det.

Tak for hjælpen!  ;-)
Avatar billede netro Nybegynder
02. oktober 2003 - 17:33 #12
Velbekomme. Prøv evt. at søge på "ilayer" i javascript-kategorien, så kan det være, du finder noget nyttig info.
Avatar billede madssch Nybegynder
02. oktober 2003 - 20:11 #13
Det vil jeg gøre...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester