Hoi,
Ik zit met het volgende probleem. Ben nu al een tijdje bezig met TinyAjax, maar hier stuit ik op het volgende probleempje..
TinyAjax heeft namelijk een 'bugje' waardoor in de XML &-tekens en +-tekens niet mee kunnen worden verzonden in een string, echter deze heb ik wel nodig (voor een bestelscript).
Nu heb ik zelf de volgende oplossing hiervoor gevonden, namelijk een stukje javascript geschreven dat voordat de value van een text veld door xml geparsed wordt, de +-tekens en de &-tekens vervangen worden door (!!#43!!) en (!!and!!).
Dit gebeurt met deze functie:
Nu is het alleen zo,
wanneer ik in FireFox of opera dit doe:
Er netjes (!!#43!!) in de popup komt te staan, doe ik dit echter in IE6+, dan komt er gewoon een +je te staan.
Bovenstaande oplossing werkt dus in firefox prima (ook met tinyajax), maar niet in IE..
Het lijkt haast wel of IE gewoon over de htmlEntities functie heenleest, kan iemand mij vertellen waarom?
Ik zit met het volgende probleem. Ben nu al een tijdje bezig met TinyAjax, maar hier stuit ik op het volgende probleempje..
TinyAjax heeft namelijk een 'bugje' waardoor in de XML &-tekens en +-tekens niet mee kunnen worden verzonden in een string, echter deze heb ik wel nodig (voor een bestelscript).
Nu heb ik zelf de volgende oplossing hiervoor gevonden, namelijk een stukje javascript geschreven dat voordat de value van een text veld door xml geparsed wordt, de +-tekens en de &-tekens vervangen worden door (!!#43!!) en (!!and!!).
Dit gebeurt met deze functie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| function htmlEntities(string) { newString = string; for (var i = 0; i < newString.length; i++) { if (newString[i] == '&') { newString = newString.replace('&','(!!and!!)'); } if (newString[i] == '+') { newString = newString.replace('+','(!!#43!!)'); } } return newString; } |
Nu is het alleen zo,
wanneer ik in FireFox of opera dit doe:
PHP:
1
| <input type="text" name="test" value="+" onchange="alert(htmlEntities(this.value));"> |
Er netjes (!!#43!!) in de popup komt te staan, doe ik dit echter in IE6+, dan komt er gewoon een +je te staan.
Bovenstaande oplossing werkt dus in firefox prima (ook met tinyajax), maar niet in IE..
Het lijkt haast wel of IE gewoon over de htmlEntities functie heenleest, kan iemand mij vertellen waarom?