Avatar billede ulf Nybegynder
18. september 2000 - 10:54 Der er 21 kommentarer og
2 løsninger

Script Redirect?

Hej! kan nogen hjælpe:

Hvordan laver jeg et Javascript redirect. Når siden loades i MSIE skal scriptet msie.js laodes, men hvis siden loades i Netscape skal scriptet Netscape.js loades

På forhånd tak...

Ulf
Avatar billede geeeet Nybegynder
18. september 2000 - 10:57 #1
if(document.layers)
<script language=\"javascript\" src=\"netscape.js\">
else
<script language=\"javascript\" src=\"msie.js\">

/Geeeet
Avatar billede ulf Nybegynder
18. september 2000 - 11:37 #2
Øhh!

Dette kan jeg godt nok ikke få til at virke. Jeg skal bruge det på en ASP-side. Kunne du måske give mig et eksempel på, hvordan jeg implementerer det i mit ASP dokument????

v/Ulf
Avatar billede geeeet Nybegynder
18. september 2000 - 11:46 #3
<script language=\"javascript\">
if(document.layers)
document.write(\'<script language=\"javascript\" src=\"netscape.js\">\');
else
document.write(\'<script language=\"javascript\" src=\"msie.js\">\');
</script>

er ganske alm. javascript, som du også kan bruge uden asp...

/Geeeet
Avatar billede nuno Nybegynder
18. september 2000 - 11:50 #4
hmm - det er lidt uklart om du vil redirecte til en side - eller om du vil bruge en bestemt javascriptfil til dine scripts.

for vil du redirecte til en bestemt asp-side alt efter om brugeren bruger ie eller ns - så laves det bare med et javascript med en browserdetection á la

<script type=\"text/javascript\">

if (navigator.appName == \"Netscape\") {
    location.href=\"dinaspfilforns.asp\";
else
    location.href=\"dinaspfilforie.asp\";
}
</script>

- hvis det er fordi du vil bruge en bestemt javascript-source - som det alt andet lige tyder på når du angiver .js-filer - så gøres det som geeeet skriver - evt. med en browserspecifik if-sætning istedet.

/nuno
Avatar billede ulf Nybegynder
18. september 2000 - 12:07 #5
Det er korrekt at jeg vil bruge forskellige javascript-sources til den samme aspside.

Og geeet\'s script er også meget fint, men i følge min browser (MSIE 4x) er det forbudt at indlejre én scriptblok i en anden. JEg får følgende fejlmeddelelse:

\"Active Server Pages fejl \'ASP 0138\'

Indlejret scriptblok

default.asp, linje 7

En scriptblok kan ikke placeres inden i en anden scriptblok. \"

Så det fatter jeg ikke????

v/Ulf
Avatar billede nuno Nybegynder
18. september 2000 - 12:09 #6
som jeg har skrevet på dit nye spsm ang. vbscritp browser detection - så ER det altså væsentligt nemmere hvis man får koden at se :)

/nuno
Avatar billede geeeet Nybegynder
18. september 2000 - 12:12 #7
Så lav evt. din browserdetection i asp, og skriv så dine foskellige filer ud i javascript...
Så slipper du for \"indlejrede scriptblokke\" :-)

/Geeeet
Avatar billede ulf Nybegynder
18. september 2000 - 12:31 #8
Hvor svært ká det være :-)

Jeg ved jo at i begge er betydeligt klogere en jeg på dette felt.

Jeg har et ASP-dokument der kalder funktionen:

<script language=\"javascript\">
<!--
ViewCode();
//-->
</script>

Jeg har så to *.js filer liggende (popsmsie.js og popsnetcape.js). I begge *.js filer findes funktionen \"ViewCode\" - de er blot forskllige i indhold.

Hvis jeg blot havde een *.js fil ville jeg blot øverst i mit ASP-dokument linke til *.js filen med:

<SCRIPT type=\"javascript\" src=\"popups.js\"></SCRIPT>

Og derefte kalde funktionen ViewCode.

Men det jeg vil er:

Hvis der bliver brugt en netscapebrowser skal *.js filen popsnetcape.js laodes og dennes ViewCode funktion derefter kaldes. Hvis der til gengæld bliver brugt en MSIE broser skal *.js filen popsmsie.js loades og dennes ViewCode funktion kaldes.

Hjælp mig nu please:´-)

v/Ulf
Avatar billede geeeet Nybegynder
18. september 2000 - 12:37 #9
<%
browser=browserdetect.Browser

if browser = \"IE\" then
response.write(\"<script language=javascript src=msie.js>\")
else
response.write(\"<script language=javascript src=netscape.js>\")
end if
%>

burde kunne klare det...

/Geeeet
Avatar billede ulf Nybegynder
18. september 2000 - 13:06 #10
Til Geet!

Thanks, men dit sidste udspil giver følgende fejlmelding:

Der opstod en Microsoft VBScript-kørselsfejl fejl \'800a01a8\'

Et objekt er obligatorisk: \'browserdetect\'

default.asp, linje 6

????????????

v/Ulf
Avatar billede geeeet Nybegynder
18. september 2000 - 13:11 #11
Sorry, glemte denne før browser=browserdetect.Browser:

<%
Set browserdetect = Server.CreateObject(\"MSWC.BrowserType\")
                      browser=browserdetect.Browser

                      if browser = \"IE\" then
                      response.write(\"<script language=javascript src=msie.js>\")
                      else
                      response.write(\"<script language=javascript src=netscape.js>\")
                      end if
                      %>

/Geeeet
Avatar billede ulf Nybegynder
18. september 2000 - 17:56 #12
Til geeet!

Thanks for det sidste, det virker (bortset fra at \"</SCRIPT>\" også skal angives i \"response.write\".

Jeg har modificeret lidt, idet jeg gerne vil have det til at virke også på versioner. JEg har lavet følgende Script som virker fint i Netscape 4+, men i MSIE 4 ignoreres konsekvent den første IF-sætning og der springes ned til IF-sætning nr. 2, hvorefter det script der skulle vises i MSIE 5 vises i MSIE 4:


  <%
    Set browserdetect = Server.CreateObject(\"MSWC.BrowserType\")
    browserType=browserdetect.Browser
    browserVersion=browserdetect.Version

    if BrowserType =\"IE\" AND BrowserVersion = 4 Then
    response.write(\"<script language=javascript src=popups_msie4.js></script>\")
   
    else if BrowserType =\"IE\" AND BrowserVersion > 4 Then
    response.write(\"<script language=javascript src=popups_msie5.js></script>\")
       
    else
    response.write(\"<script language=javascript src=popups_net4.js></script>\")
 
    end if
    end if
%>

til orientering:

Det er kun brugere af enten MSIE 4 eller derover eller NEtscape 4 eller derover der komer til denne siden med ovennævnte script, så det er KUN dem der skal tages hensyn til.

Det jeg vil have, sagt med ord:

1. Brugere af MSIE 4.x skal loades med popups_msie4.js

2. Brugere af MSIE 5 og større skal loades med popups_5.js

3. Brugere af Netscape 4 og større skal loades med posups_net4.js.

4. Brugere af andre browsere eller versioner er IKKE relevante, idet de slet ikke får lov at komme frem til denne side.

Kan du igen igen hjælpe?

v/Ulf
Avatar billede nuno Nybegynder
20. september 2000 - 08:01 #13
hmm - hvis du skal have det til at virke i ie5 eller højere skal du nok sætte >= 5 istedet for >4 - og så kan du evt. prøve at bygge om på de 2 if - sætninger. Således at den fanger ie5+ browserne først - og først derefter tjekker om det er en ie4 version.

/nuno
Avatar billede ulf Nybegynder
20. september 2000 - 08:19 #14
nuno!

Virker ikke! Dette skulle i IE 4x loade \"popups_msie4.js\", men loader \"popups_msie5.js\" i stedet.

Det er ligesom om BrowserType betingelsen ignoreres:

  <%
    Set browserdetect = Server.CreateObject(\"MSWC.BrowserType\")
    BrowserType=browserdetect.Browser
    BrowserVersion=browserdetect.Version

    if BrowserType =\"IE\" AND BrowserVersion >= 5 Then
    response.write(\"<script language=javascript src=popups_msie5.js></script>\")
   
    else if BrowserType =\"IE\" AND BrowserVersion = 4 Then
    response.write(\"<script language=javascript src=popups_msie4.js></script>\")
       
    else
    response.write(\"<script language=javascript src=popups_net4.js></script>\")
 
    end if
    end if
%> 

??????????+

v/Ulf

Avatar billede geeeet Nybegynder
20. september 2000 - 10:02 #15
Prøv at få den til at skrive værdien af browserdetect.Version ud, så vi kan se hvad dælen der går galt..

/geeeet
Avatar billede nuno Nybegynder
20. september 2000 - 11:21 #16
hmm ok - men prøv så det her.....

<%
    Set browserdetect = Server.CreateObject(\"MSWC.BrowserType\")
    BrowserType=browserdetect.Browser
    BrowserVersion=browserdetect.Version

    if BrowserType =\"Microsoft Internet Explorer\" AND BrowserVersion >= 5 Then
    response.write(\"<script type=\'text/javascript\' src=popups_msie5.js></script>\")
   
    else if BrowserType =\"Microsoft Internet Explorer\" AND BrowserVersion = 4 Then
    response.write(\"<script type=\'text/javascript\' src=popups_msie4.js></script>\")
       
    else if BrowserType =\"Netscape Navigator\" AND BrowserVersion = 4 Then
    response.write(\"<script type=\'text/javascript\' src=popups_net4.js></script>\")
 
    end if
    end if
    end if
   
%>

hvad siger den så?

/nuno
Avatar billede nuno Nybegynder
20. september 2000 - 11:40 #17
ok - jeg har lige forsøgt igen og dette her virker i hvert fald

<%
    Set browserdetect = Server.CreateObject(\"MSWC.BrowserType\")
    BrowserType=browserdetect.Browser
    BrowserVersion=browserdetect.Version

    if BrowserType = \"IE\" AND BrowserVersion >= 5.0 Then
    response.write \"<script type=\'text/javascript\' src=popups_msie5.js></script>\"
   
    else if BrowserType =\"IE\" AND BrowserVersion >= 4.0 AND BrowserVersion < 5.0 Then
    response.write \"<script type=\'text/javascript\' src=popups_msie4.js></script>\"
       
    else if BrowserType =\"Default\" AND BrowserVersion = 0.0 Then
    response.write \"<script type=\'text/javascript\' src=popups_net4.js></script>\"
 
    end if
    end if
    end if
   
%> 


at den står til default skal jeg ikke helt kunne redegøre for (har ikke lige tid til at forfølge det nu) - men jeg tjekkede det hele i Opera også - og så satte den IKKE src=popups_net4.js selv om det er en vers. 4 browser. Men som sagt - jeg ved ikke om ns3 brugere fx vil kunne sætte src=popups_net4.js ved brug af ovennævnte.... jeg har kun ns 4.04 og frem....

/nuno
Avatar billede ulf Nybegynder
20. september 2000 - 12:55 #18
Nuno!

NIKS det gør ej :-(

Ovennævnte script loader \"popups_msie5.js\" når siden åbnes i Internet Explorer 4.0.

v/Ulf
Avatar billede nuno Nybegynder
20. september 2000 - 12:59 #19
argh - sorry - men har ikke IE4 her på arb.

kan først tjekke det og knække det, når jeg kommer hjem så.

/nuno
Avatar billede ulf Nybegynder
20. september 2000 - 13:38 #20
Har fikset det mht. IE4.

Versionsudtrykene skulle blot også qoutes ex. \"4.0\", så nu virker det i IE 4.x

MEN nu skal du høre det rigtig sjove. Hvis jeg åbner siden i IE5 detecter den browseren som værende \"Netscape 4.00\" og IKKE IE 5.0.

LAvede en response.write på variablerne BrowserType og BrowserVersion.

Fatter det bare ikke - hvordan fanden kan den detecte IE 5.0 som værende Netscape 4.00

??????????????

v/Ulf
Avatar billede nuno Nybegynder
20. september 2000 - 15:51 #21
se dén bliver sgu svær for mig at hjælpe dig med - for i ie5.0 her på arbejde - der detecter korrekt - altså til IE5.0 når jeg laver response.write på de 2 variabler....
Avatar billede geeeet Nybegynder
20. september 2000 - 15:57 #22
<%
    Set browserdetect = Server.CreateObject(\"MSWC.BrowserType\")
    BrowserType=browserdetect.Browser
    BrowserVersion=browserdetect.Version

    response.write(BrowserType)
    response.write(\"<br>\")
    response.write(BrowserVersion)
   
    \'if BrowserType = \"IE\" AND BrowserVersion >= 5.0 Then
    \'response.write \"<script type=\'text/javascript\' src=popups_msie5.js></script>\"
   
    \'else if BrowserType =\"IE\" AND BrowserVersion >= 4.0 AND BrowserVersion < 5.0 Then
    \'response.write \"<script type=\'text/javascript\' src=popups_msie4.js></script>\"
       
    \'else if BrowserType =\"Default\" AND BrowserVersion = 0.0 Then
    \'response.write \"<script type=\'text/javascript\' src=popups_net4.js></script>\"
 
    \'end if
    \'end if
    \'end if
%> 

Skriver også IE samt 5.0 her...

Mere er der vist ikke at gøre....

/Geeeet
Avatar billede ulf Nybegynder
21. september 2000 - 18:14 #23
Det må jo være min IE5 der er i \"kage\". Jeg lader det lige ligge lidt - skal til at have install. nyt OS.

Tak så langt:-)

v/Ulf
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