JavaScript en XMLNS

Status
Niet open voor verdere reacties.

Kaizah

Gebruiker
Lid geworden
6 sep 2008
Berichten
38
Hallo iedereen.

Ik ben bezig een AJAX formuliertje te bouwen en alles werkt prima, op 1 ding na.
Ik zal de situatie schetsen:
Ik heb een divje met daarin een marquee.
Als op de div wordt geklikt, wordt de inhoud van de marquee opgehaald en veranderd de marquee in een input type text.
De waarde van deze input is dan de inhoud van de marquee.
Men kan dan de inhoud dus aanpassen door de waarde van de input te wijzigen.
Zodra de input focus verliest (dmv een onBlur) wordt via AJAX de nieuwe marquee waarde verstuurd (inhoud van de input dus) en verwerkt op de server; opslaan in de database.
Vervolgens geeft de server een XML document terug die er als volgt uit ziet:

Code:
<?xml version=\"1.0\"?>
<success type="message">nieuwe waarde</success>

In dit antwoord staat de nieuwe waarde van de marquee, dus wat verstuurd is naar de server.
Nu wil ik die oude waarde in mijn marquee terug zetten.
Aangezien deze binnen een div stond, die nu een input als inhoud heeft, doe ik het volgende:

Code:
elem.innerHTML = '<marquee scrolldelay=500 scrollamount=25>' + val + '</marquee>';

Hierbij is elem mijn divje, dit klopt gewoon en val is de nieuwe waarde die ik dus in de marquee wil hebben.
Als ik alert(val); doe, dan is val ook precies wat het moet zijn.
Mijn probleem is nu echter, als ik 1 keer dit heb gedaan, dus ik zet een nieuwe waarde uiteindelijk terug in een marquee binnen mijn div, dan is de waarde niet precies val maar:

Code:
<b xmlns="http://www.w3.org/1999/xhtml">val</b>

Er worden dus <b> tags omheen gezet met een XML namespace erbij.
Ik wil dit niet en vraag mij af waarom dit gebeurt.

Ter aanvulling: als ik in plaats van een tag met inhoud, zoals een marquee, een tag zonder inhoud terugzet, bijvoorbeeld een <img /> tag, dan werkt alles wel prima...

Wie kan mij helpen?

Alvast bedankt.
 
Met welke browser werk je? Heb je toevallig ook een demo online, want het live zien is altijd handiger. Als je dat niet hebt, kan je ook de code hier posten.

Ik denk dat het een AJAX-iets is; maargoed, heb iets meer code nodig om zeker te zijn.
 
Nu je het zegt, ik gebruikte firefox (3.6.8) en daar gebeurt het wel in.
Als ik google chrome gebruik, gebeurt het niet.

Ik heb het inmiddels al opgelost, maar de oplossing vind ik maar raar, misschien kan iemand me dit uitleggen.

Ik had dus een <div> met daarin een <marquee>. Nu zag ik dat om de div heen <b> tags stonden. Ik heb deze verwijderd en nu werkt het wel...
Zoals ik al zei deed alles het wel gewoon in google chrome...
 
Nou, om een <div> tag mag zowiezo geen <b> tag; <div> is een block element, <b> een inline. Je HTML was dus fout. Maargoed, het blijft een beetje raar.


Het is altijd handig om je code eventjes door de W3 validator te gooien! :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan