Avatar billede mclemens Nybegynder
24. april 2007 - 22:12 Der er 7 kommentarer og
1 løsning

Kompatibilitet, window.location.search ?

Jeg overvejer at køre multidesign med 3 forskellige css filer (opløsninger) og har af denne årsag bygget et javascript til at tilføje / fjerne en ?opl=opløsning til search strengen afhængig af skærmens opløsning. Serverside switching med brugerens hjælp er ikke optimal, da ikke alle har styr på hvad opløsning er for noget.

...

Vil jeg kunne få problemer med en kodning alá.
(simplificeret eksempel uden kontrolfunktion,
parsing og attachEvent / addEventListener ):

window.onload=function(){
  j="?opl=noget";
  if(window.location.search!=j&&j!="?")window.location.search=j;
}

... Umiddelbart svarer IE7 og FF2 ok, men hvor
langt går vi tilbage før den ikke sluger den ?
Og er der nogle browsere der ikke sluger det ?
Avatar billede mclemens Nybegynder
24. april 2007 - 23:44 #1
http://www.w3schools.com/htmldom/dom_obj_location.asp
"search" - IE 4, FF 1, OP 9 ... Godt nok til mig :o)
Avatar billede olebole Juniormester
26. april 2007 - 12:49 #2
<ole>

- og ellers er 'en kage' jo altid en mulighed  =)

/mvh
</bole>
Avatar billede mclemens Nybegynder
26. april 2007 - 14:23 #3
Hvis jeg kaster en kage til brugeren baseret på opløsningen
- skal siden reloades, før det får effekt, når ændringen af css sker
serverside eller rettere det ville ikke give nogen effekt på den første side.

... Hvis brugeren så har sukkersyge og jeg vælger at reloade siden efter
kage tildelingen vil patienten gå i koma og reloade konstant. Men, på den
anden side ville mit købesystem alligevel heller ikke virke uden nogle kager.

Jeg tror, at jeg vælger at kigge på en kage og så istedet
for at reloade vil jeg skifte css filen, så er det værste jo
blot at den først tilpasser css filen efter load af siden. :o)

... Det er selvfølgelig skidt performance, men mindst ligeså
godt som at reloade siden ... og så slipper jeg for at folk
kaster links til siden med ... .php?opl=800 samt .php?opl=1280.

Tak for kagen Olebole, det hjælper nu med lidt sukker :o)
Avatar billede olebole Juniormester
26. april 2007 - 14:59 #4
Selvtak. Er den aktuelle side én, man kommer til som den første - eller kommer man typisk fra et andet sted på sitet. I sidste tilfælde er der jo rigelig med tid til at sætte kagen. I det hele taget, må man kunne drible sig udenom af de værste forhindringer  ;o)
Avatar billede mclemens Nybegynder
26. april 2007 - 15:29 #5
Alle siderne kan egentlig være den første man kommer ind på (fra søgemaskiner). Da enkelte har forespurgt efter, "Hvor købeknappen er ?" (horisontal scroll ved 800x600) - ville det være rart med lidt tilpasning baseret på opløsningen. Så af hensyn til første indtrykket vil jeg gerne have opløsningen tilpasset med det samme.

Begge løsninger vil fungere lige godt på side nr 2.

Css switch og cookie vil fungere godt på side 1, såfremt
jeg ikke vil have den til at skifte billede kilder også
(kan selvfølgelig også kodes) og nøjes med at lade
css'en bestemme design forskellen på de to sider.

Javascript reload med url ændringen vil fungere godt på side 1, men den skal dog reloade siden (kan selvfølgelig kaste en if(document.getElementById("noget")){ikke refresh} på hvis den ikke skal af hensyn til sidens dynamiske indhold) og så er der url "sjusket".

Begge muligheder kan dribles, men spørgsmålet er hvilken del jeg lige vælger at drible med. Om ikke andet kunne mulighed 3 være nr 2 med reload, cookie indstilling samt url, hvis cookien ikke var sat && url'en ikke matchede: Så jeg fik rettet billed src stierne, hvis de var forskellige - og samtidig ville "side 2 (3 hvis reload tælles med)" og fremefter fungere med cookien - og hvis cookies var deaktiveret ville det køre via js og url'en (get serverside).
Avatar billede roenving Novice
27. april 2007 - 14:05 #6
Forstod du selv den ?-)
Avatar billede mclemens Nybegynder
27. april 2007 - 17:39 #7
Roenving, joh det gjorde jeg, men dårligt formuleret...

Alle sider kan tilgåes direkte, optimalt ville
være med tilpasning på første side man besøger.

Skiftning af aktiv css fil og indstilling af cookie til
serverside brug via javascript vil slå fint igennem såfremt
jeg kun ønsker at det er css'en der giver forskellen på siden.

Javascript reload med ændring i url'en vil give mulighed
for at tilrette andet end blot css'en - dog med en reload
som følge samt en grim url imens folk surfer rundt på siden.

Men, hvis jeg kombinerer de to kan jeg lave javascript reload
med url ændring samtidig med at jeg sætter en cookie således
at det blot er den første side der får den grimme url og
således at resten af siderne baserer sig på cookien - og
hvis cookies er deaktiveret ville den basere sig på url'en.

(Sikkert ligeså dårligt forklaret som sidst.)

if(brugerbesøg){
  if(cookiesat){
    if(cookie!=opløsning){
      cookiesetresolution=opløsning;
      //reloadsiden
    }
  }else{
    cookiesetresolution=opløsning;
    if(urlvariabel!=opløsning){
      parse og ret url
      reloadsiden med rigtig opl i url'en
    }
  }
}

serverside
if(besøg){
  if(cookiesat){
    baser design på cookie
  }
  else if(javascript url sat){
    baser design på get værdi
    og lav links med get værdien
  }else{
    baser på en opløsning
  }
}
Avatar billede roenving Novice
28. april 2007 - 11:07 #8
Okay, men pseudokoden var det nemmeste at forstå !-)
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