Avatar billede kimlarsen1978 Nybegynder
18. juli 2003 - 22:16 Der er 28 kommentarer og
1 løsning

variabler efter adresselinien

Hej
Jeg vil gerne have et scipt der kan afgøre hvad der står i adresselinien også alt efter hvad der står tildele en variabel en værdi. Den variablen skal jeg så have over i en ASP variabel bagefter. Jeg har prøvet:
-------------
<script language="javascript" type= "text/javascript">

if (location.href=="www.mitdomæne.dk" || location.href=="www.mitdomæne.com")
{
<%
comdk = "en tekst streng som gennem i denne variabel"
%>   
}
</script>
----------------
Er det klart nok hvad jeg mener?
Avatar billede thesurfer Nybegynder
18. juli 2003 - 22:33 #1
hmm.. nej, jeg forstår ikke hvad du mener.. forklar nærmere hvis du kan.
Avatar billede kimlarsen1978 Nybegynder
18. juli 2003 - 22:37 #2
Okay.
Jeg vil gerne have et script der sætter en variabel til en værdi hvis der i adresse linen står www.navn.dk og står der noget andet i adresselinien skal værdien være noget andet. I "dummy kode" ser det sådan her ud:
-----------
if adresselinien = www.navn.dk then
var = "en tekst værdi"
else
var = "en anden tekst værdi"
end if
-----------------
Når det så er gjort skal jeg have "var" over i ASP sådan her i "dummy kode":
--------------
<%
ASPvar = var
%>
--------------
Er du med?
Avatar billede thesurfer Nybegynder
18. juli 2003 - 22:45 #3
hvad med at bruge Request.ServerVariables("SCRIPT_NAME") til at finde adressen?
Avatar billede kimlarsen1978 Nybegynder
18. juli 2003 - 22:47 #4
den retunerer kun det der står efter .dk
Jeg skal bruge det der står i  browserens adresselinie
Avatar billede thesurfer Nybegynder
18. juli 2003 - 22:57 #5
prøv med:

Request.serverVariables("LOCAL_ADDR") & Request.serverVariables("PATH_INFO")
Avatar billede nielle Nybegynder
18. juli 2003 - 23:04 #6
I det ASP koden bliver udført før JavaScript koden kan du ikke fra JavaScript gemme noget i en ASP variabel.
Avatar billede thesurfer Nybegynder
18. juli 2003 - 23:06 #7
det er derfor jeg vil lave det i asp..
Avatar billede nielle Nybegynder
18. juli 2003 - 23:07 #8
Rent i ASP:

<%
HOST = Request.serverVariables("HTTP_HOST")

if HOST="www.mitdomæne.dk" or HOST="www.mitdomæne.com" then
  comdk = "en tekst streng som gennem i denne variabel"
end if
%>
Avatar billede thesurfer Nybegynder
18. juli 2003 - 23:09 #9
ahh.. det var det det hed.. :)
Avatar billede nielle Nybegynder
18. juli 2003 - 23:10 #10
thesurfer -> Det havde jeg gennemskuet, men du var jo ikke så venlig at forklare grunden til kimlarsen1978.
Avatar billede kimlarsen1978 Nybegynder
18. juli 2003 - 23:13 #11
Jamen Request.serverVariables("HTTP_HOST") returnerer "hosten" på siden, jeg har det i frames så en side kan godt være hente fra dk_domænet medens der står COM i adresselinien, derfor skal jeg bruge det fra adresselinien
Avatar billede nielle Nybegynder
18. juli 2003 - 23:24 #12
Prøv at indsæt følgende stump kode på din side. Der ser du samtlige muligheder:

<%
for each SV in Request.ServerVariables
  Response.Write(SV & " = " & Request.ServerVariables(SV) & "<br>")
next
%>
Avatar billede kimlarsen1978 Nybegynder
18. juli 2003 - 23:32 #13
ok, men der er ingen der retunerer det rigtige.
Avatar billede roenving Novice
19. juli 2003 - 01:36 #14
-- der må da i asp være en, som svarer til javascript location ...
Avatar billede nielle Nybegynder
19. juli 2003 - 07:35 #15
Tja det skulle man tro, men det lader altså ikke til at være tilfældet.

Et (halvgrimt) hack kunne være at:

1) bestemme href via javascript,
2) placere det som en value bagerst i et url til samme side,
3) loade siden med dette url (ville ligne et reload), og
4) samle værdien op i ASP via Request.QueryString(…)

Da der kun er brug for at bestemme denne en gang under brugerens besøg (nemlig ved start), kan det sikkert gøres sådan at brugeren slet ikke lægger mærke til det.
Avatar billede kimlarsen1978 Nybegynder
19. juli 2003 - 09:32 #16
Ja, det lyder som en fin ide - hvordan gør man det? Jeg har forgæves forsøgt at få fat i adresselinien i et JavaScript med: location.href
Så hvis du kunne lave en kode der kunne det du siger, så er du en helt :)
Avatar billede kimlarsen1978 Nybegynder
19. juli 2003 - 09:40 #17
Ang. det med at der er noget der svarer til javascript location i ASP, så ved jeg ikke om det findes, men det er ikke en ServerVariables for det er jo ikke den side hvorpå scriptet udføres vi skal vide noget om, det er jo browserens adresselinie og det ved "serveren" vel ikke noget om - tror jeg da :)
Avatar billede nielle Nybegynder
19. juli 2003 - 10:06 #18
kimlarsen1978 -> Korrekt, men ASP scriptet køre jo på serveren mens JavaScriptet køre på klienten.
Avatar billede nielle Nybegynder
19. juli 2003 - 10:08 #19
Kald den første fil folk ser når det kommer ind på sitet for welcome.asp.

=== welcome.asp ===

<%
href = Request.QueryString("href")

if href = "" then %>

<script type="text/javascript">
var NewURL = 'welcome.asp?href=' + location.href
window.location.replace(NewURL)
</script>

<%
else
  Response.Write(href)
end if
%>
Avatar billede nielle Nybegynder
19. juli 2003 - 10:09 #20
"window.location" skal selvfølgelig tilpasses til den frame du bruger.
Avatar billede kimlarsen1978 Nybegynder
19. juli 2003 - 10:13 #21
Hvad mener du med at den skal tilpasset til den frame jeg bruger?
Avatar billede nielle Nybegynder
19. juli 2003 - 10:18 #22
...sådan at den loader i den frame du vælger at vise welcome.asp i. Det kan godt være at jeg vrøvler (er ikke JS ekspert), men bliver min version ikke loadet i hovedvinduet?
Avatar billede kimlarsen1978 Nybegynder
19. juli 2003 - 10:26 #23
Jeg har kun lige lyn testet det, det ligner noget jeg kan bruge. Men jeg skal til Århus om en time, så jeg kigger på det i toget... V
Jeg vender tilbage
Avatar billede roenving Novice
19. juli 2003 - 14:00 #24
kimlarsen1978 19/07-2003 09:40:44

-- det er adresselinjen i klienten, som bestemmer hvad serveren sender ...

For det er klienten som sender en request til serveren og adresselinjen er præcis det som serveren får oplyst, så det er det den kan reagere på, så du har helt misforstået den sammenhæng ...

Prøv at lave en søgning f.eks., så vil du se, at du får en adresse-linje som indeholder kriterierne for søgningen og du regner vel ikke med, at databasen har sendt sig selv med, så der er noget javascript client-side som sorterer det ?-)

Derfor skal du bare hente variabler fra adresse-linjen ind i dit asp-script og tage fat i dem der -- spørg f.eks. i asp-kategorien, der vil du sikkert få et fyldestgørende svar fra en 15-20 stykker indenfor 10 minutter !-)
Avatar billede roenving Novice
19. juli 2003 - 14:01 #25
-- og så har nielle (ufrivilligt) lige vist hvordan du får fat i den:

Den hedder Request.QueryString("variabelnavn") ...
Avatar billede nielle Nybegynder
19. juli 2003 - 14:06 #26
Uffrivilligt? ;^)
Avatar billede nielle Nybegynder
19. juli 2003 - 14:07 #27
roenving -> Hvordan får man da fat i "www.mitdomæne.dk" delen via Request.QueryString("variabelnavn")? Hvilket variabelnavn skal man bruge?
Avatar billede roenving Novice
19. juli 2003 - 15:24 #28
Nu har jeg jo ikke en fløjtende fis forstand på asp, og querystring er jo ganske rigtigt det som kommer efter domæne og fil-angivelse, men jeg ved jo, at forskellige småfirmaer, som f.eks. det der lille i Seattle som bla. kører msn og vist har haft en finger med i spillet omkring asp sagtens kan finde ud af, om folk er kommet den ene eller den anden vej ind på et site -- så der må være asp-metoder til det -- jeg ville prøve at søge i asp-kategorien ...
Avatar billede kimlarsen1978 Nybegynder
20. juli 2003 - 19:09 #29
Jeg har brugt "nielle 19/07-2003 10:08:05"
til at lave en fornuftig løsning.
Jeg takker for jeres hjælp.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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