Avatar billede cronck Nybegynder
07. december 2011 - 11:27 Der er 6 kommentarer

Jquery - Overskriv <script>-tag

Jeg oplever pt. lidt problemer med at parse JSON. Mistænker det er fordi jQuery versionen på serveren hvor systemet ligger, er forholdvis gammel.

Da jeg ikke har adgang til serveren, forsøger jeg at teste fra min egen laptop med Chrome + en Extension som burde overskrive jQuery scriptet til en nyere version. Det virker dog ikke.

Min extension bliver fint kørt når siden loader, men ser ikke ud til at "src" i script-tagget bliver overskrevet.

Har følg. kode i min extension:

var elemScript = $('head script:nth-child(7)');
  console.log(elemScript);
  elemScript.remove();
  $('head').add('<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>')

Den smider det rigtige element i Javascript-konsollen, men den fjerner det ikke og tilføjer heller ej et nyt script.
Har også prøvet med .replaceWith()

Nogen der kan spotte hvad der går galt?
Avatar billede keysersoze Guru
07. december 2011 - 11:43 #1
Du kan sagtens køre flere forskellige versioner af jQuery på samme site og du vinder ikke noget ved at lave add og remove. Kig i stedet på jQuery.noConflict().
Avatar billede cronck Nybegynder
07. december 2011 - 12:13 #2
Findes der ikke en måde hvorpå jeg kan overskrive scriptet på klienten?
Avatar billede keysersoze Guru
07. december 2011 - 13:09 #3
det vil du gøre, mere eller mindre, gøre ed at benytte noConflict.
Avatar billede olebole Juniormester
07. december 2011 - 16:59 #4
<ole>

Nu ved jeg ikke, hvad din extension præcist gøre - og hvornår - men hvis først scriptet er indlæst, kan du ikke fjerne det ved at fjerne tagget. Er et script først læst af browseren, ligger det i dennes hukommelse til siden skiftes.

Derudover kan enhver JS-funktion overskrives. Loader du derfor en gammel version af jQuery og derefter en nyere version, vil den nye overskrive den gamle - men brugeren skal naturligvis vente på, at begge versioner downloader og initieres

/mvh
</bole>
Avatar billede cronck Nybegynder
09. december 2011 - 09:28 #5
olebole:

Det ser ud til at den gamle version af jQuery bliver loadet, inden scriptet i min extension bliver kørt.

Hvis jeg printer jQuery version-nummeret i console.log, står der desværre 1.4.4, og ikke 1.7.1 som der burde. :/
Avatar billede keysersoze Guru
09. december 2011 - 09:42 #6
Hvad er rækkefølgen af dine scripts?

Har du forsøgt med noConflict? Det er netop denne slags problemstillinger noConflict kan løse.
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