假設此網頁的基準 URL 是:
http://abc.sesta.com/dir1/dir2/page.html
網頁內容
<script language="JavaScript"> <!-- function jstest2(){ return ".html"; } function jstest1(one){ return one; } var dir="/images/test" var test1=jstest1(dir+"/test"+jstest2()); document.write("<a HREF="+test1+">TEST</a>"); alert(test1); //--> </SCRIPT>
規則
<Function type="EXPRESSION" name="jstest1" paramPatterns="y"/> 或者 <Function name="jstest1" paramPatterns="y"/>
輸出
<script language="JavaScript"> <!-- function jstest2(){ return ".html"; } function jstest1(one){ return one; } var dir="/images/test" var test1=jstest1(psSRAPRewriter_convert_expression(dir+"/test"+jstest2())); document.write("<a HREF="+test1+">TEST</a>"); alert(test1); //--> </SCRIPT>
描述
規則將 jstest1 函數的第一個參數視為 EXPRESSION 函數參數,從而指定此參數需要重新寫入。在網頁內容範例中,第一個參數是僅在執行時間中計算其值的表示式。Rewriter 會將 psSRAPRewriter_convert_expression 函數前置於此表示式之前。從而計算此表示式,並且 psSRAPRewriter_convert_expression 函數在執行階段重新寫入輸出。
以上範例中,不需將 test1 變數作為 JavaScript 變數規則的一部分。jstest1 的函數規則負責執行重新寫入。