Avatar billede codebase Praktikant
15. november 2000 - 15:15 Der er 4 kommentarer og
1 løsning

Kontrol af browser ?

Hej
Med henvisning til spg. http://www.eksperten.dk/spm/25286

Vil jeg gerne smide lidt point på bordet for et godt svar. !
dvs. Spørgsmålet er:
Hvordan kan man (hvis man kan) oprette en HTML side, som indeholder informationer som sender en WAP telefon, videre til en ny index.wml?
og
Hvordan skal man gøre, så ens side kan ses, uden at man skriver den fulde sti til filen
http://www.minwap.dk/
og ikke
http://www.minwap.dk/index.wml  ????

Avatar billede janegil Nybegynder
15. november 2000 - 16:25 #1
En HTML-side kan ikke, selv, sende en WAP-telefon noe sted hen, fordi da måtte WAP-devicen først lese HTML-siden.

Men i Cold Fusion kan jeg teste på User-Agent, Accept, osv i HTTP-headeren, og velge innhold i siden ut fra dét. Eller sende browseren videre. Antar du kan gjøre det samme med ASP. Hvilken web-server bruker du? Og har du tilgang til ASP-lignende verktøy?

index.wml:
I Internet Service Manager (for IIS) velger du default web server (eller det aktuelle dir), Documents, der føyer du index.wml til en liste som antagelig inneholder default.htm og default.asp fra før.
Avatar billede janegil Nybegynder
15. november 2000 - 16:30 #2
oops. Hvis du setter index.wml overst i lista over default dokument-navn, så vil en HTML-browser også få WML-siden. Bortsett fra Opera, vil de nok ikke like det...

Så du må til å teste HTTP-headere.

På min Cold Fusion server ser det omtrent slik ut:

<cfif IsDefined(\"HTTP_ACCEPT\")>
  <cfif FindNoCase (\"text/vnd.wap.wml\", \"#HTTP_ACCEPT#\") is not 0 >
      <cflocation url=\"/index.wml\" addtoken=\"No\">
  </cfif>
</cfif>
Avatar billede pomfrit Nybegynder
22. november 2000 - 08:55 #3
Hvis du kan bruge asp på serveren kan du teste user agenten sådan:

<%
uastring = request.ServerVariables(\"HTTP_USER_AGENT\")

If (InStr(uastring, \"WAP\")) Then
Response.Redirect(\"WAP/start.wml\")
end if

If (InStr(uastring, \"MSIE\")) Then
Response.Redirect(\"MSIE/start.html\")
end if
%>


Du er selvfølgelig også nødt til at teste på flere typer klienter.
Avatar billede janegil Nybegynder
22. november 2000 - 09:33 #4
Jeg tror ikke user-agent er rette feltet å teste på?
Prøvde phone.com\'s UP SImulator, den oppgir
User-Agent: UPG1 UP/4.0.10 UP.Browser/4.0.10-XXXX UP.Link/4.1.H
Altså ikke noe treff for InStr(uastring, \"WAP\").

Men det skal jo helt sikkert finnes user-agents der min test, som leter etter \"text/vnd.wap.wml\" i Accept-feltet, også feiler. (Fx. Opera, men de har gjort det med vitende og vilje, fordi Opera også forstår HTML, og antar at HTML til enhver tid er mere ønskelig enn WML.)
Avatar billede pomfrit Nybegynder
22. november 2000 - 12:58 #5
Janegil har ret. Det ville være bedre at gøre sådden:

accept = request.ServerVariables(\"HTTP_ACCEPT\")
If (InStr(accept, \"text/vnd.wap.wml\")) Then
    Response.Redirect(\"start.wml\")
else
    Response.Redirect(\"start.html\")
end if
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