그 값을 다시 작성해야 하는 함수 매개 변수는 4가지 범주로 분류됩니다.
<Function name="functionName " paramPatterns="y,y," [type="URL|EXPRESSION|DHTML|DJS" source=”*”]/>
여기서
name은 JavaScript 함수의 이름입니다(필수).
paramPatterns는 다시 작성해야 하는 매개 변수를 지정합니다(필수).
y. y의 위치는 다시 작성해야 하는 매개 변수를 나타냅니다. 예를 들어 구문에서 첫 번째 매개 변수는 다시 써야 하지만 두 번째 매개 변수는 다시 쓰지 않아야 합니다.
type은 이 매개 변수에 필요한 값의 종류를 지정합니다(옵션, 기본값은 EXPRESSION 유형).
source는 페이지의 소스 URI입니다(옵션, 기본값은 *, 모든 페이지를 의미).
함수는 이 매개 변수를 문자열로 취하며 이 문자열은 URL로 취급할 수 있습니다.
이 절은 다음으로 세분됩니다.
<Function name="functionName" paramPatterns="y,," type="URL" [source=”*”]/>
여기서
name은 URL 유형의 매개 변수를 갖는 함수 이름입니다(필수).
paramPatterns는 다시 작성해야 하는 매개 변수를 지정합니다(필수).
y. y의 위치는 다시 작성해야 하는 매개 변수를 나타냅니다. 예를 들어 구문에서 첫 번째 매개 변수는 다시 써야 하지만 두 번째 매개 변수는 다시 쓰지 않아야 합니다.
type은 함수의 유형입니다(필수, 이 값은 URL이어야 함).
source는 이 함수 호출을 갖는 페이지의 URL입니다(옵션, 기본값은 *, 모든 URL을 의미).
페이지의 기본 URL이 다음과 같다고 가정합니다.
http://abc.sesta.com/test/rewriter/test1/jscript/test2/page.html
페이지 컨텐트
<script language="JavaScript"> <!-- function test(one,two,three){ alert(one + "##" + two + "##" +three); } test("/test.html","../test.html","123"); window.open("/index.html","gen",width=500,height=500); //--> </SCRIPT>
규칙
<Function name="URL" name="test" paramPatterns="y,y,"/> <Function name="URL" name="window.open" paramPatterns="y,,,"/>
결과
<SCRIPT language="JavaScript"> <!-- function test(one,two,three) { alert(one + "##" + two + "##" +three); } test("gateway-URL/http://abc.sesta.com/test.html"," gateway-URL/http://abc.sesta.com/test/rewriter/ test1/jscript/test.html","123");window.open("gateway-URL/ http://abc.sesta.com/index.html","gen",width=500,height=500); //--> </SCRIPT>
설명
첫 번째 규칙은 test 이름의 함수에 있는 처음 두 매개 변수를 다시 작성해야 한다고 지정합니다. 따라서 test 함수의 처음 두 매개 변수는 다시 작성됩니다. 두 번째 규칙은window.open 함수의 처음 매개 변수를 다시 작성해야 한다고 지정합니다. window.open 함수 내의 URL에는 이 함수 매개 변수를 포함한 페이지의 기본 URL과 게이트웨이 URL이 앞에 덧붙여집니다.
이 매개 변수는 표현식 값을 취하며 평가 결과는 URL이 됩니다.
이 절은 다음으로 세분됩니다.
<Function name="functionName" paramPatterns="y" [type="EXPRESSION" source=”*”]/>
여기서
name은 함수의 이름입니다(필수).
paramPatterns는 다시 작성해야 하는 매개 변수를 지정합니다(필수).
y. y의 위치는 다시 작성해야 하는 매개 변수를 나타냅니다. 위의 구문에서 첫 번째 매개 변수만 다시 작성됩니다.
type은 값 EXPRESSION을 지정합니다(옵션).
source는 이 함수가 호출되는 페이지의 URI입니다.
페이지의 기본 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"/> or <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 함수가 런타임 시 결과를 다시 씁니다.
위의 예제에서 JavaScript 변수 규칙의 일부로 test1 변수가 있을 필요는 없습니다. jstest1에 대한 함수 규칙이 다시 쓰기를 처리합니다.
그 값이 HTML인 함수 매개 변수입니다.
HTML 페이지를 동적으로 생성하는 document.write() 같은 원시 JavaScript 메소드가 이 범주에 속합니다.
이 절은 다음으로 세분됩니다.
<Function name="functionName" paramPatterns="y" type="DHTML" [source=”*”]/>
여기서
name은 함수의 이름입니다.
paramPatterns는 다시 작성해야 하는 매개 변수를 지정합니다(필수).
y. y의 위치는 다시 작성해야 하는 매개 변수를 나타냅니다. 위의 구문에서 첫 번째 매개 변수만 다시 작성됩니다.
페이지의 기본 URL이 다음과 같다고 가정합니다.
http://xyz.siroe.com/test/rewriter/test1/jscript/JSFUNC/page.html
페이지 컨텐트
<script> <!-- document.write(\q<a href="/index.html">write</a><BR>\q) document.writeln(\q<a href="index.html">writeln</a><BR>\q) document.write("http://abc.sesta.com/index.html<BR>") document.writeln("http://abc.sesta.com/index.html<BR>") //--> </SCRIPT>
규칙
<Function name="DHTML" name="document.write" paramPatterns="y"/> <Function name="DHTML" name="document.writeln" paramPatterns="y"/> <Attribute name="href"/>
결과
<SCRIPT> <!-- document.write(\q<a href="gateway-URL/ http://xyz.siroe.com/index.html">write</a><BR>\q) document.writeln(\q<a href="gateway-URL/ http://xyz.siroe.com/test/rewriter/test1/ jscript/JSFUNC/index.html">writeln</a><BR>\q) document.write("http://abc.sesta.com/index.html<BR>") document.writeln("http://abc.sesta.com/index.html<BR>") //--> </SCRIPT>
설명
첫 번째 규칙은 document.write 함수의 첫 번째 매개 변수를 다시 작성해야 한다고 지정합니다. 두 번째 규칙은 document.writeln 함수의 첫 번째 매개 변수를 다시 작성해야 한다고 지정합니다. 세 번째 규칙은 href 이름의 모든 속성을 다시 작성해야 한다고 지정하는 단순 HTML 규칙입니다. 이 예에서, DHTML 매개 변수 규칙이 함수에서 다시 작성해야 하는 매개 변수를 확인합니다. 그런 다음 HTML 속성 규칙이 적용되어 실제로 확인된 매개 변수가 다시 작성됩니다.
그 값이 JavaScript인 함수 매개 변수입니다.
이 절은 다음으로 세분됩니다.
<Function name="functionName" paramPatterns="y" type="DJS" [source=”*”]/>
여기서
name은 하나의 매개 변수가 DJS인 함수의 이름입니다(필수).
paramPatterns는 위 함수에서 어떤 매개 변수가 DJS인지를 지정합니다(필수).
y. y의 위치는 다시 작성해야 하는 매개 변수를 나타냅니다. 위의 구문에서 첫 번째 매개 변수만 다시 작성됩니다.
type은 DJS입니다(필수).
source는 페이지의 URI입니다(옵션, 기본값은 *, 모든 URI를 의미).
페이지의 기본 URL이 다음과 같다고 가정합니다.
http://abc.sesta.com/page.html
페이지 컨텐트
<script> menu.addItem(new NavBarMenuItem("All Available Information","JavaScript:top.location=\qhttp://abc.sesta.com\q")); </script>
규칙
<Function name="DJS" name="NavBarMenuItem" paramPatterns=",y"/> <Variable name="URL">top.location</Variable>
결과
<script> menu.addItem(new NavBarMenuItem("All Available Information", "JavaScript:top.location=\qgateway-URL/ http://abc.sesta.com\q")); </script>
설명
첫 번째 규칙은 JavaScript를 포함한 NavBarMenuItem 함수의 두 번째 매개 변수를 다시 작성해야 한다고 지정합니다. JavaScript 내에서 top.location 변수도 다시 작성해야 합니다. 이 변수는 두 번째 규칙을 사용하여 다시 작성됩니다.