JavaScript HTML in Parameter, das JavaScript enthält, das HTML übergibt ...

ownagi

Commander Pro
🎄Rätsel-Elite ’24
Registriert
Jan. 2005
Beiträge
2.199
Hey, habe nen kleines Escaping-Problem:



Beispiel:

HTML:
<button onclick="func('<button onclick=\"func2(\'<button>blub</button>\');\">bla</button>');"></button>




wie wird das korrekt escaped?
 
naja das ist quasi das ganze beispiel

eigentlich ist es ne php klasse/komponente zur erzeugung von kleinen fenstern mittels js
dh eine javascript funktion bekommt html überliefert, das sie in einer box vom browser rendern lässt
der inhalt kann natürlich unter umständen wieder javascript enthalten usw.

faktisch reduziert sich die problematik allerdings auf das oben genannte beispiel

escapen ist minder erfolgreich, da der code ja weiterhin ausführbar sein muss
 
hmm, ist schwirig. Grade wenn da wieder JS functionen drinnen sind. Da kommste ja dann mit document.wirte() auch nicht weiter, da müsstest du schon eval nutzen und eval is evil ;)

Also um modale fenster in JS zu erzeugen hab ich auf meiner page den HTML code schon hinterlegt und aus display:none gesetzt, und das wir dann nurnoch mit inhalt gefüllt. Das machts einfacher :) Aber JS functionen "unmöglich".

Sonst schau dir doch mal XSLT an :)
 
naja aber auch wenn ich ein bereits vorhandenes fenster mit html code, der js-funktionsaufrufe enthält die html übergeben bekommen, befülle, hab ich wieder das gleiche problem


habe es im moment mit nem base64 en/decode gelöst
funktioniert einwandfrei, ausser, dass ich keine funktionsvariablen mehr übergeben kann,
da ich durch das encoding nicht die variable direkt als parameter definiere sondern nur deren name

aber dafür hab ich ne weitere funktion geschrieben, die zwar lokale js variablen übergeben bekommen kann, jedoch keine verschachtelten html/js-fragmente ...


denke ist die beste und auch einzige lösung (die 2 unterschiedlichen funktionen, das base64 zeugs evtl nicht :p)
 
Zurück
Oben