Ik ben bezig met een webapplicatie. Die redelijk veel javascript bevat. Ook kan de gebruiker heel veel dingen aanpassen. Echter wil ik dat deze aanpassingen pas verstuurd worden naar de server als de gebruiker op enkele knoppen drukt (zoals op een save knop).
Daarom wou ik binnen een div, wat xml plaatsen. En vanuit javascript deze xml aanpassen, en zodra de gebruiker dus op een save knop drukt, deze xml opsturen naar de server waar dit in de database opgeslagen wordt.
Serverside gebruik ik Asp.Net Ajax. Clientside gebruik ik het dojo framework.
In deze javascript plaats ik de xml in de daarvoor bedoelde div (die uiteindelijk gewoon hidden wordt.
Het eerste probleem waar ik tegen aanloop is dat InnerHtml het als attribuut geplaatst wordt in IE. Echter gebeurd er niks in firefox met de dom. Als ik innerHTML gebruik, wordt het netjes zoals ik wil in de dom geplaatst, namelijk als volgt:
Dit krijg ik dus niet voor elkaar in IE.
Waar ik ook tegen aanloop dat ik niet de zoekfuncties zoals dojo.byId kan gebruiken (wat een cross-browser versie van getElementById is).
Of kan ik in deze situatie beter een andere manier gebruiken. Ik heb voor deze methode gekozen in eerste instantie, omdat ik op deze manier erg gemakkelijk andere dom objecten kan verplaatsen naar het stukje xml.
Daarom wou ik binnen een div, wat xml plaatsen. En vanuit javascript deze xml aanpassen, en zodra de gebruiker dus op een save knop drukt, deze xml opsturen naar de server waar dit in de database opgeslagen wordt.
Serverside gebruik ik Asp.Net Ajax. Clientside gebruik ik het dojo framework.
JavaScript:
1
2
3
4
5
6
| function CreateGuidCallback(result) { myGuid = result; var tmpProjectXML = "<xml><project id='xml_project'><title id='xml_title' text=''></title><guid id='xml_guid' text='" + myGuid + "'></guid><theme id='xml_theme' text='none'></theme><fotos id='xml_fotos'> </fotos> </project></xml>"; dojo.byId('projectholder').InnerHtml = tmpProjectXML; } |
In deze javascript plaats ik de xml in de daarvoor bedoelde div (die uiteindelijk gewoon hidden wordt.
Het eerste probleem waar ik tegen aanloop is dat InnerHtml het als attribuut geplaatst wordt in IE. Echter gebeurd er niks in firefox met de dom. Als ik innerHTML gebruik, wordt het netjes zoals ik wil in de dom geplaatst, namelijk als volgt:
XML:
1
2
3
4
5
6
7
8
9
10
11
| <DIV id="projectholder"> <XML _moz-userdefined=""> <PROJECT _moz-userdefined="" id="xml_project"> <TITLE text="" id="xml_title"/> <GUID _moz-userdefined="" text="{f30fc175-9b24-4b3e-b723-45127bf63e9c}" id="xml_guid"/> <THEME _moz-userdefined="" text="none" id="xml_theme"/> <FOTOS _moz-userdefined="" id="xml_fotos"> </FOTOS> </PROJECT> </XML> </DIV> |
Dit krijg ik dus niet voor elkaar in IE.
Waar ik ook tegen aanloop dat ik niet de zoekfuncties zoals dojo.byId kan gebruiken (wat een cross-browser versie van getElementById is).
Of kan ik in deze situatie beter een andere manier gebruiken. Ik heb voor deze methode gekozen in eerste instantie, omdat ik op deze manier erg gemakkelijk andere dom objecten kan verplaatsen naar het stukje xml.
Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?