簡體   English   中英

如何在XSL中使用少於javascript的for循環工作?

[英]How do I get a less than in a javascript for loop in XSL to work?

我正在使用CDATA來逃避腳本,但在IE8的調試器中,我仍然在for循環條件中收到此消息:“Expected')'”。 我假設它仍然認為; < 由CDATA生成的結束循環條件。

我的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>

轉換后生成的代碼(來自IE8調試器)

<script type="text/javascript" language="javascript">
    function submitform(form){
        var oErrorArray = new Array();
        for (i=0;i&lt;form.length;i++) 
        eval("oErrorArray["+i+"]=oError"+i);
        goForm = true;
        for(i=0;i&lt;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>

IE8調試器報告錯誤: 預期')'login.xml,第29行30字符 (緊接在第一個“form.length”之后)

您需要顯式禁用輸出轉義。

http://www.w3.org/TR/xslt#disable-output-escaping

正如凱爾在評論中指出的那樣,尤其需要

(1)刪除CDATA標簽和

(2)插入<xsl:text disable-output-escaping="yes">&lt;</xsl:text> ,您需要轉義該字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM