Одна из целей нашего проекта, которая имеет тяжелое требование DDA, заключается в обеспечении того, чтобы отображаемый HTML был 100% совместим с переходной грамматикой xhtml 1.0. К сожалению, у меня есть одна ошибка, которую я не могу устранить. Это потому, что JSF впрыскивает следующий фрагмент JavaScript в страницу (отформатирован для ясности), который, потому что это не обернуты в CDATA, отвергается w3c валидатор с этим сообщением:JSF 1.2 инъекция javaScript, вызывающая w3c Ошибка проверки
Line 443, Column 122: character "<" is the first character of a delimiter but occurred as data
…dp;if (adp != null) {for (var i = 0;i < adp.length;i++) {f.removeChild(adp[i])…
?
This message may appear in several cases:
You tried to include the "<" character in your page: you should escape it as "<"
You used an unescaped ampersand "&": this may be valid in some contexts, but it is recommended to use "&", which is always safe.
Another possibility is that you forgot to close quotes in a previous tag.
Мой вопрос это возможно чтобы заставить JSF либо обернуть блок сценария в CDATA, либо сделать внешний сценарий?
<script type="text/javascript" language="Javascript">
function dpf(f) {
var adp = f.adp;
if (adp != null) {
for (var i = 0;i < adp.length;i++) {
f.removeChild(adp[i]);
}}};
function apf(f, pvp) {
var adp = new Array();
f.adp = adp;
var ps = pvp.split(',');
for (var i = 0,ii = 0;i < ps.length;i++,ii++) {
var p = document.createElement("input");p.type = "hidden";p.name = ps[i];p.value = ps[i + 1];
f.appendChild(p);
adp[ii] = p;i += 1;
}};
function jsfcljs(f, pvp, t) {
apf(f, pvp);
var ft = f.target;
if (t) {
f.target = t;
}
f.submit();
f.target = ft;dpf(f);
};
</script>
Фантастический :) Еще раз я в восторге от ваших навыков jsf. –