Avatar billede storkie Nybegynder
23. juli 2007 - 21:05 Der er 29 kommentarer og
2 løsninger

Value virker ikke i FF

Hej

Jeg har følgende kode:
onclick="java script:parent.window.document.getElementById('idIndhold').contentWindow.document.body.innerHTML = parent.window.document.getElementById('idIndhold').contentWindow.document.body.innerHTML + '<img src=http://www.eksperten.dk width=' + (parent.window.document.getElementById('picsize').value/100) + '>'"

Problemet er, at det ikke vil virke i FF med:

(parent.window.document.getElementById('picsize').value/100)

Hvordan kan jeg få det lavet, så det virker i FF og IE?
Avatar billede w13 Novice
23. juli 2007 - 21:32 #1
Hvad med:
(parent.window.document.getElementById('picsize').getAttribute("value")/100)
Avatar billede storkie Nybegynder
23. juli 2007 - 21:36 #2
Nej, virker heller ikke.
Avatar billede w13 Novice
23. juli 2007 - 21:43 #3
Er den da bare blank eller hvad går galt?
Avatar billede w13 Novice
23. juli 2007 - 21:47 #4
Hvis du prøver en:
alert(parent.window.document.getElementById('picsize'))
og kører den i FF, så vil den returnere, om objectet kan findes eller ej, så kan vi tage den derfra.

(I øvrigt kan du også godt fjerne "java script:". Det bør kun bruges i href, da onclick, onmouseover, onfocus, onchange, etc. kun kan indeholde javascript. Jeg ved ikke, om det kunne forstyrre i FF, men i så fald burde det naturligvis ødelægge hele js-koden. hmm.)
Avatar billede storkie Nybegynder
23. juli 2007 - 21:48 #5
Der sker intet. I IE indsætter den koden, men der sker bare intet i FF. Ikke engang en fejlmeddelse.
Det virker lige så snart jeg fjerner (parent.window.document.getElementById('picsize').value/100)
Avatar billede storkie Nybegynder
23. juli 2007 - 21:50 #6
Den retunerer "null"
Avatar billede w13 Novice
23. juli 2007 - 21:56 #7
Men det går jeg ud fra, den ikke returnerer i IE..

Hmm.. jaeh. Jamen så er det jo der, den er gal. :S
Hvilket er meget underligt, da det jo virker i begyndelsen af din onclick, blot med et andet object.. hmm.. mærkeligt..
Hvad med:
(parent.window.document.getElementsByTagName("body")[0].getElementById('picsize').value/100)

Ellers så prøv:
alert(parent.window.document), og se om dén da kan findes.
Avatar billede storkie Nybegynder
23. juli 2007 - 21:58 #8
Fandt en løsning:

parent.window.document.forms['pic'].elements['picsize'].value

Men tak for hjælpen. Smid et svar.
Avatar billede olebole Juniormester
23. juli 2007 - 21:59 #9
<ole>

Er du nu helt sikker på, der står id="picsize" - og ikke name="picsize"? Hvis der kun står en name-attribute, kan du naturligvis ikke hente den med getElementById (bortset fra i IE, som er buggy på dette punkt)  ;o)
Er det ikke her, fejlen ligger, må du lægge et link til eksemplet.

w13 >> Desværre er det desværre umuligt at hente et formfelts værdi med valid DOM-kode ... og det har det været siden 1999. W3C's DOM giver af uforståelige årsager ikke mulighed for at hente dynamiske egenskaber (checked og value), hvis de er blevet påvirket af brugerhandlinger.
Metoden getAttribute må ifølge standarden kun returnere, hvad der står i taggets attribute (altså, hvad koderen har skrevet), og/eller værdien sat med setAttribute  :o|

Først når XHTML 2.0 og XForms er en realitet - og de understøttes af browserne - kan vi igen arbejde med forms i valid kode

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
23. juli 2007 - 21:59 #10
Havde du en id-attribut på elementet 'picsize' ?
Avatar billede olebole Juniormester
23. juli 2007 - 22:00 #11
Nej, det var der tydeligvis ikke, hvis (23/07-2007 21:58:23) virker  ;o)
Avatar billede storkie Nybegynder
23. juli 2007 - 22:00 #12
Nej, prøver lige at sætte det på og se om den gamle kode stadig virker.
Avatar billede olebole Juniormester
23. juli 2007 - 22:03 #13
PS: Du må gerne have både en id- og en name-attribute - og de må gerne være ens. Name-attributten kan du nemlig ikke undvære, da det er dén, serveren kan aflæse. Bruger du kun id-attributten, optræder feltet ikke som query-variable på serveren
Avatar billede storkie Nybegynder
23. juli 2007 - 22:03 #14
Det virker, så det var bare mig, som ikke havde fået id-attributten sat. Mange tak for hjælpen. Smid svar, så får I point.
Avatar billede w13 Novice
23. juli 2007 - 22:04 #15
Nå ja, Ole, det har jeg vist hørt lidt om. De burde da lige tage sig lidt sammen. :)
Avatar billede olebole Juniormester
23. juli 2007 - 22:04 #16
Erik plejer ikke at ville have points, men lad os lige vente på w13  ;o)
Avatar billede erikjacobsen Ekspert
23. juli 2007 - 22:07 #17
Nej tak.
Avatar billede storkie Nybegynder
23. juli 2007 - 22:07 #18
Så var der point. Tak for hjælpen!
Avatar billede olebole Juniormester
23. juli 2007 - 22:08 #19
Selvtak - og tak for points  ;o)
Avatar billede w13 Novice
23. juli 2007 - 22:10 #20
Jep, takker!
Avatar billede storkie Nybegynder
23. juli 2007 - 22:31 #21
Nu er der opstået et nyt lille problem:

Dette virker i IE, men ikke i Firefox:
(550*(parent.window.document.getElementById('picsize').getAttribute('value')/100))

Firefox regner det ikke ud, men laver det bare til 550, selvom picsize er lige med f.eks. 50 eller 25.
Avatar billede w13 Novice
23. juli 2007 - 22:36 #22
Og du har nu sat en id="picsize" på elementet picsize?
Avatar billede olebole Juniormester
23. juli 2007 - 22:38 #23
Læs: (23/07-2007 21:59:10)  ;o)

Du kan ikke bruge ELEMENT.getAttribute("value"). Du skal bruge ELEMENT.value  =)
Avatar billede olebole Juniormester
23. juli 2007 - 22:38 #24
Altså:
    (550*(parent.window.document.getElementById('picsize').value/100))
Avatar billede storkie Nybegynder
23. juli 2007 - 22:39 #25
Ja, parent.window.document.getElementById('picsize').getAttribute('value') retunerer også valuen af picsize, men FF vil åbenbart ikke foretage udregningen.
Avatar billede w13 Novice
23. juli 2007 - 22:41 #26
som olebole siger, driller parent.window.document.getElementById('picsize').getAttribute('value') i FF. Brug parent.window.document.getElementById('picsize').value
Avatar billede storkie Nybegynder
23. juli 2007 - 22:41 #27
Det var lige det, som var galt. Tak igen ;)
Avatar billede olebole Juniormester
23. juli 2007 - 22:45 #28
Nej, getAttribute driller i IE ... ikke i FF!  =)

Den _må_ ikke returnere andet end det, koderen har skrevet i tagget. Den _må_ ikke reflektere brugerændringer. FF gør det helt korrekt ifølge DOM-rekommandationerne fra W3C  ;o)
Avatar billede w13 Novice
23. juli 2007 - 22:47 #29
Whatever :P
Avatar billede olebole Juniormester
23. juli 2007 - 22:50 #30
'whatever' er nok det mest udbredte keyword indenfor webkodning, men det er kun gyldigt indenfor 'lav standard'. Indenfor alle andre standarder er det ikke validt ... sorry, men jeg kunne ikke lade være  ;o)
Avatar billede w13 Novice
23. juli 2007 - 22:57 #31
Doh! :D
(^Hardcore programming standard!)
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

IT-JOB

Politiets Efterretningstjeneste

CNE-specialist til PET`s indhentningsafdeling

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Nye kolleger søges til IT Stab i Forsvaret

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Kickstart din IT-karriere som IT-supporterelev på Flyvestation Aalborg

Netcompany A/S

Test Consultant