Vedr. hjemmeside som virker i Firefox, Opera, Safari men ikke i IE

Tags:    php jquery ajax

<< < 12 > >>
Hej folkens.

Jeg håber på at kunne finde lidt hjælp herinde til mit lille hjemmesideprojekt.
Jeg har en hjemmeside, da jeg i min fritid arbejder som naturfotograf.
Tidligere havde jeg en simpel HTML side med et autogenereret flash billedalbum, men det var for irriterende.
Nu har jeg så fået en af mine venner til at lave en side til mig i ajax, noget med noget jquery, jeg forstår det sku ikke helt, men jeg kan godt finde ud af at rette de mest basale ting i DreamWeaver.

Vores problem er at vi begge er kørt en del fast da det har vist sig at siden ikke virker i IE?
Vi aner simpelthen ikke havd der er galt, man kan sagtens bladre i menuen i både safari, opera, firefox men altså ikke i IE.
Er det noget der er nogen af jer der har hørt om før?

siden findes på www.kp-foto.com

På forhånd tak.





14 svar postet i denne tråd vises herunder
7 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Hej Kristian,

Så vidt jeg kan se kommer der en eller anden spøjs jQuery fejl. I bruger dog også en ret gammel version. Hvis jeg var jer ville jeg prøve at opgradere til en nyere version. For at teste det kan I jo udskifte den nuværende reference med en til Google's CDN, fx https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js. Prøv det :)

Mvh.

Kasper (TSW)



Hej Kristian,

Din kode er lidt svær at debugge, men jeg undrer mig over følgende:

Fold kodeboks ind/udJScript kode 


Umiddelbart giver $(this).val() ikke rigtigt mening, da this må referere til linket, som ikke har en value. Hvis det er teksten på linket der skal bruges som parameter til PHP filen, så skal det være text() i stedet for val(). Det kan du jo evt. lige prøve :)

Mvh.

Kasper (TSW)



Hej Kristian,

Så vidt jeg kan se står der stadig val(), men du har måske rettet det tilbage igen? Virkede det med text() i fx Firefox? Det burde nemlig være mere rigtigt, med mindre jeg har misforstået din opbygning, hvilket bestemt også er en mulighed :)

./ notationen i dine load() kald undrer mig også lidt - burde det ikke være rigeligt at skrive /? Fx

$("#content").load('/subsites/home.html');

i stedet for:

$("#content").load('./subsites/home.html');

Derudover ville jeg nok undersøge om det var et af de mange, mange "plugins" du også loader, der driller. De må stort set alle kunne undværes for at kunne loade forsiden, så jeg ville nok prøve at fjerne dem allesammen så det kun er jQuery der er tilbage og så se om det gør en forskel :)

Mvh.

Kasper (TSW)



Indlæg senest redigeret d. 18.05.2011 16:01 af Bruger #1
Fedt nok Kristian, men jeg synes du skrev at det hele virkede fint i alt andet end IE til at starte med?

Anyway, jeg synes stadig at du skal prøve mit trick med at fjerne referencerne til alle de forskellige JavaScript ting som ikke er jQuery og se om det gør en forskel. Hvis det gør kan du begynde at putte dem tilbage igen en efter en indtil du har fundet synderen :)

Edit: Jeg har genskabt en lille smule af dit site lokalt og kan loade forsiden samt undersider (mine egne små dummy-sider, men stadig) med din kode, når jQuery er det eneste der er inkluderet. Eftersom du bruger noConflict() metoden bør du i øvrigt rette dine $ til jQuery, fx

jQuery("#content").load('/subsites/home.html');

i stedet for

$("#content").load('/subsites/home.html');

Mvh.

Kasper (TSW)



Indlæg senest redigeret d. 18.05.2011 16:40 af Bruger #1
Hej Kristian,

Jeg tænker på alle <script> referencerne i din <head> sektion. Der refereres til en hulens bunke forskellige eksterne .js filer, som jeg ikke lige har overblik over om du rent faktisk bruger, men jeg synes du skal forsøge at fjerne referencerne til dem allesammen undtagen den du har til jQuery. Prøv at gøre det og så skriv herinde når de er væk, så kan jeg tage et kig på det igen :)

Mvh.

Kasper (TSW)



JavaScript, ikke Java - der er stor forskel :). Og det virker som regel glimrende i IE. Det kan dog hurtigt blive meget rodet når man vælger at bruge så mange 3rd party script løsninger som man blander sammen i et stort virvar, hvilket også var grunden til at jeg gerne ville have dig til at fjerne det :). Jeg kan se at du har ryddet lidt op nu, men der linkes stadig til noget prototype, scriptaculous og lightbox, samt din egne javascript.js, som vist udelukkende bruges til at markere det aktive menupunkt i toppen. Som sagt kan jeg få det til at virke lokalt, når kun jQuery er inkluderet, så når du fortsat linker til de andre filer så er det svært for mig :)

Hvis du har lyst kan du sende mig en privatbesked med FTP informationerne, så vil jeg gerne tage et kig, men det kræver at jeg må rode lidt rundt i din kode imens sitet er online. Det er op til dig.

Jeg vil i øvrigt lige understrege at det muligvis er fancy at loade alle sine sider ind asynkront via JavaScript, men det er rasende ueffektivt i forhold til søgemaskiner osv. Dit site vil blive virkelig dårligt indekseret på den her måde og folk kan ikke linke direkte til en underside osv. Det kan være du er ligeglad med den slags og så er det helt fint, men nu ved du det i hvert fald :)

Mvh.

Kasper (TSW)



Indlæg senest redigeret d. 19.05.2011 10:13 af Bruger #1
Så har jeg kigget lidt på det og jeg kan da godt forstå du ikke har kunne få det til at virke, for det er godt nok et meget mystisk problem :). Jeg lavede nogle forskellige tests og debuggede lidt frem og tilbage og det var ganske rigtigt som om intet virkede i IE. Jeg kunne ikke engang lave en tom side og bruge en af jQuery's AJAX metoder til at loade en af dine HTML filer! Det slog mig dog at der måske var et problem med en af dem, så jeg prøvede at loade din index.php i stedet, og bingo, det virkede! Jeg prøvede derefter at lave en kopi af din home.html og kalde den home.php i stedet - bingo, den kunne også loades! Hvis du går ind på dit site nu, så vil du se at den nu kan loade forsiden i IE (testet i IE 7 og 8). Kigger du i sourcen vil du se at jeg loader home.php der i stedet for home.html.

Problemet? Tjah, godt spørgsmål. Det vigtigste for mig var at finde en løsning til dig, så jeg vil ikke grave meget mere i det, men mit umiddelbare bud er at din server serverer HTML filer på en spøjs måde - hvordan og hvorfor det ved jeg ærlig talt ikke. Det kan være at der er nogen med en sniffer der kan kigge lidt nærmere på det eller som kender lidt mere til opsætning af den webserver der bruges :)

Løsning? Du kan jo rename dine HTML filer til .php og så rette det til i din JavaScript kode. Jeg vil tro at det kan løse problemet helt og aldeles og der er ikke rigtigt nogen bivirkninger ved at have dit indhold liggende i .php filer frem for .html filer :)

I din private mail spurgte du mig om det var besværligt at rette sitet til noget der også kunne fungere med søgemaskiner, og nej, det er ikke synderligt besværligt. Det jeg ville gøre i din situation, var at lave en top.php og en bottom.php og så en fil for hver underside, der inkluderer top.php i toppen, derefter kommer den enkelte undersides indhold og derefter et include af bottom.php. Du kan stadig godt vise dine billeder med fancy effekter osv. Men om det er et projekt du kan overskue, det ved jeg så ikke :)

Mvh.

Kasper (TSW)



Indlæg senest redigeret d. 19.05.2011 10:53 af Bruger #1
Tak for svaret Kasper!

Jeg har nu udskiftet jQuery.js filen som var en version 1.2.1 med den nyeste version 1.6.1, nu skriver den ikke længere nogle errors i IE men den vil stadig ikke bladre i menuen. Og det vil den stadig godt i FF og Safari.




Tak igen Kasper, så er det også prøvet men uden held.
Det er fordi der er et dynamisk galleri på siden ude i venstre side, hvor den går ud og henter kategorierne til galleriet ved at se hvilke mapper jeg har uploadet med billeder i.
Jeg har også prøvet at fjerne hele den stump kode der har med galleriet at gøre for at se om jeg bare kunne få menuen i toppen til at virke, men ligeledes uden held! :(
Jeg blir snart sindsyg! ;)
Men tak endnu engang Kasper!
Hvorfor er det altid IE den er gal med?! ;)




Du er genial Kasper!
Nu er der da endnu mere der virker!
Nu virker både menu og galleri i Firefox, Opera, og Safari.
Jeg indsatte text() i stedet for val() og fjernede alle . før / i load notationerne.
Men der er desværre intet det virker i IE.
Argghhhh... tænk hvis alle i hele verden brugte firefox, så var min side færdig nu! ;)
Tusind tak for hjælpen indtil videre!!!



<< < 12 > >>
t