J'utilise CDATA pour échapper le script mais dans le débogueur de IE8 je reçois toujours ce message: "Expected ')" "dans les conditions de boucle for. Je suppose qu'il pense toujours que le; dans le <
généré par CDATA se termine les conditions de boucle.Comment puis-je obtenir une moins de javascript pour une boucle dans XSL pour fonctionner?
Scénario original dans mon modèle XSL:
<script type="text/javascript" language="javascript">
<![CDATA[
function submitform(form){
var oErrorArray = new Array();
for (i=0;i<form.length;i++)
eval("oErrorArray["+i+"]=oError"+i);
var goForm = true;
for(i=0;i<form.length;i++) {
oErrorArray[i].innerHTML = "";
if(form[i].value="")){
oErrorArray[i].innerHTML = "Error - input field is blank";
goForm = false;
}
}
if(goForm == true) form.submit();
}
function resetform(form){
form.reset();
}
]]>
</script>
Le code généré après transformation (du débogueur IE8):
<script type="text/javascript" language="javascript">
function submitform(form){
var oErrorArray = new Array();
for (i=0;i<form.length;i++)
eval("oErrorArray["+i+"]=oError"+i);
goForm = true;
for(i=0;i<form.length;i++) {
oErrorArray[i].innerHTML = "";
if(form[i].value="")){
oErrorArray[i].innerHTML = "Error - input field is blank";
goForm = false;
}
}
if(goForm == true) form.submit();
}
function resetform(form){
form.reset();
}
</script>
erreur signalée par débogueur IE8: attendu login ')'. xml, ligne 29 caractère 30(qui est juste après le premier "form.length")
double possible [xslt, javascript et html entités unescaped] (http://stackoverflow.com/questions/435005/xslt-javascript-and-unescaped-html-entities) – Kobi