Avatar billede kdjweb Nybegynder
25. oktober 2007 - 20:20 Der er 34 kommentarer og
2 løsninger

Fejl i IE

Tjae, "Der opstod en ukendt kørselsfejl".
Linien den siger det på er:
document.getElementById("pris").innerHTML = ialt;

Funktionen:
function beregn(ourForm,antal,pris){
    var ialt = pris * antal;
    document.getElementById("pris").innerHTML = ialt;
}

Bliver udskevet her:
<span id="pris">0</span> kr.

Skal lige siges at det virker i FF.

// Kasper :)
Avatar billede w13 Novice
25. oktober 2007 - 22:17 #1
Så du får ingen fejl, hvis du fjerner linjen?
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 22:20 #2
Nej selvølgelig ikke, hvis jeg fjener den linie bliver funktionen jo ikke brugt overhovedet.
Avatar billede w13 Novice
25. oktober 2007 - 22:34 #3
Men hvis du kun fjerner:    document.getElementById("pris").innerHTML = ialt;
Har du prøvet det?

Javascripts linjetæller er nemlig ikke altid helt præcis.
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 22:36 #4
Sagde jeg lige at der ikke gjorde :)
Avatar billede w13 Novice
25. oktober 2007 - 22:42 #5
Jeg blev i tvivl om din opfattelse af "linje" :)

Prøv at skrive:

alert(ialt);

i stedet.
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 22:51 #6
Det funker,
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 22:53 #7
http://kdj.dk/test.php <- Hvis du har har lyst til at blive irriteret over dine alerts :)
Avatar billede w13 Novice
25. oktober 2007 - 22:53 #8
Hvad skriver den?
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 22:55 #9
Den skriver selvfølgelig variablen ialt, og de har været korrekte hele tiden :)
Avatar billede w13 Novice
25. oktober 2007 - 22:56 #10
Jeg kan lige se, at du skal rette <SCRIPT> til <SCRIPT TYPE="text/javascript">, hvis det skal være validt. Ellers kunne det i princippet indeholde hvilket som helst kodesprog.

Prøv så at alerte document.getElementById("pris")
Avatar billede w13 Novice
25. oktober 2007 - 22:56 #11
I øvrigt har din form et input-felt med class="input_feild", er det meningen? :)
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 23:00 #12
Alerte det? begrund lige hvordan man skal alerte det :P (type virkede ikke)
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 23:02 #13
ja, det er noget kode jeg har taget ud fra min rigtige hjemmeside, desuden har class intet med det at gøre. Class ville aldrig kunne give fejl i et javascript.
Avatar billede w13 Novice
25. oktober 2007 - 23:03 #14
alert(document.getElementById("pris"));

Hvis den returnerer "[object]", ved vi, det findes. =) Det er meget brugbart til debug.
Avatar billede w13 Novice
25. oktober 2007 - 23:03 #15
Nej, ved godt det med class, det virkede bare som om en (anden) fejl, du måske ikke havde set.
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 23:05 #16
[Object HTMLspanelement]
Avatar billede w13 Novice
25. oktober 2007 - 23:07 #17
Godt. Hmm.. innerHTML er godt nok meget invalidt, men jeg har ikke før oplevet, det ikke virker. Vi kan prøve med helt korrekt kodning så: DOM (Document Object Model).

function beregn(ourForm,antal,pris){
    var ialt = pris * antal;
    document.getElementById("pris").replaceNode(document.createTextNode("ialt"),document.getElementById("pris").firstChild);
}
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 23:12 #18
Viser intet i FF
Tror du manglede en parantes slut i sultningen
men i IE efter at havde rettet blev fejlen 'this.form.pris.value' er null eller ikke et object.
Avatar billede w13 Novice
25. oktober 2007 - 23:15 #19
Det ser ikke ud til, at der mangler parenteser. Prøv lige at lægge det ud, så jeg kan se det.
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 23:26 #20
Kan jeg pludseligt ikke, min FTP er helt død.
Avatar billede w13 Novice
25. oktober 2007 - 23:33 #21
Mærkeligt.
Jeg skulle i øvrigt ikke have gåseøjne om "ialt" og det skal vist være replaceChild, så det skal være:

function beregn(ourForm,antal,pris){
    var ialt = pris * antal;
    document.getElementById("pris").replaceChild(document.createTextNode(ialt),document.getElementById("pris").firstChild);
}
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 23:39 #22
virker i FF, ikke i ie Fejl: Ugyldigt agrument
Avatar billede w13 Novice
25. oktober 2007 - 23:47 #23
Nu kan jeg slet ikke se din side. Men indsætter den det rigtigt i FF?
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 23:49 #24
Den indsatte det som den gjorde da det bare var:
document.getElementById("pris").innerHTML = ialt;
Avatar billede w13 Novice
25. oktober 2007 - 23:52 #25
Jep. Det her er bare mere gyldigt og fremtidssikkert :) DOM er altid godt.

Din side skriver slet ikke noget nu. Så jeg kan ikke se det i IE.
Avatar billede kdjweb Nybegynder
25. oktober 2007 - 23:55 #26
Nej, som jeg sagde tidligere, min ftp er vist nede.

Synes ikke selv det er et fremsrkidt siden at det virkede i FF før, og ikke i IE, og så om igen.
Avatar billede kdjweb Nybegynder
26. oktober 2007 - 00:01 #27
jeg hopper i kassen nu, ret utroligt at det kan tage 4 timer at lave et lille simpelt javascript på 4 linier.

Håber der er en løsning eller 2 imorgen :)

// Kasper
Avatar billede w13 Novice
26. oktober 2007 - 00:08 #28
Ja, må se på det, når siden er oppe igen. Går ud fra, det er en dum fejl. Muligvis et andet sted i din kode, men den kan jeg jo ikke se nu. Normalt er DOM meget mere pålideligt end innerHTML. Har også brugt replaceChild masser af gange.
Avatar billede olebole Juniormester
26. oktober 2007 - 09:19 #29
<ole>

Hvorfor:
    document.getElementById("pris").replaceChild(document.createTextNode(ialt),document.getElementById("pris").firstChild);

Det kan jo bare skrives:
    document.getElementById("pris").firstChild.nodeValue = "ialt";

ReplaceChild virker kun på element-noder  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
26. oktober 2007 - 09:21 #30
- bortset fra i FF, hvor intet DOM valideres. Dér kan man _alt_ med DOM ... såmænd også at klone hele dokument-elementet og append'e det til et meta-element!  =8-O
Avatar billede kdjweb Nybegynder
26. oktober 2007 - 10:45 #31
Hehe med Oles sætning og lidt fejlfinding, fandt jeg ud af at min input som havde name="pris" og at min <span> havde id="pris", så da jeg ændrede det virkede det fint i både FF og IE :)

document.getElementById("pris").innerHTML = ialt; <- virker
document.getElementById("pris").firstChild.nodeValue = ialt; <- virker
document.getElementById("pris").replaceChild(document.createTextNode(ialt),document.getElementById("pris").firstChild); <- virker også

Så i må vel dele pointene :)
Avatar billede w13 Novice
26. oktober 2007 - 15:09 #32
Ole>> Jeg ved det virkelig heller ikke. =S

KDJWeb>> Okay! =)
Avatar billede olebole Juniormester
29. oktober 2007 - 15:03 #33
Så får du også lige et herfra  ;o)
Avatar billede kdjweb Nybegynder
01. november 2007 - 21:21 #34
beklager tiden det tog
Avatar billede w13 Novice
01. november 2007 - 22:29 #35
Takker!
Avatar billede olebole Juniormester
02. november 2007 - 13:34 #36
Tak for points  ;o)
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