您可自下列路徑存取此範例:
portal-server-URL /rewriter/JavaScript/variables/url/js_urls.html
請確定您已於閘道服務的 [網域與子網域的代理伺服器] 清單中定義 abc.sesta.com。
若未定義,則會採用直接連接,且不前置閘道 URL。
將此範例中指定的規則新增至 [重新寫入 JavaScript 來源的規則] 部分的 default_gateway_ruleset 中。
在 Portal Server 管理主控台的 Portal Server 配置下,編輯 Rewriter 服務中的 default_gateway_ruleset。
若您新增此規則,請重新啟動閘道:
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> Rewriting starts <head> <title>JavaScript Variable test page</title> </head> <body> <script LANGUAGE="Javascript"> <!-- //URL Variables var imgsrc="/tmp/tmp.jpg"; var imgsrc="./tmp/tmp.jpg"; var imgsrc="../tmp/tmp.jpg"; var imgsrc="../../tmp/tmp.jpg"; var imgsrc="http://abc.sesta.com/tmp/tmp.jpg"; var imgsrc="../../../tmp/tmp.jpg"; var imgsrc="tmp/tmp.jpg"; //--> </SCRIPT> <br> Testing JavaScript variables! <br> <img src="images/logo.gif"> <br> Image </body> <br> Rewriting ends </html>
<Variable name="imgsrc" type="URL"/>
<html> Rewriting starts <head> <title>JavaScript Variable test page</title> </head> <body> <script LANGUAGE="Javascript"> <!-- //URL Variables var imgsrc="gateway-URL/portal-server-URL/tmp/tmp.jpg"; var imgsrc="gateway-URL/portal-server-URL /rewriter/JavaScript/variables/url/tmp/tmp.jpg"; var imgsrc="gateway-URL/portal-server-URL /rewriter/JavaScript/variables/tmp/tmp.jpg"; var imgsrc="gateway-URL/portal-server-URL /rewriter/JavaScript/tmp/tmp.jpg"; var imgsrc="gateway-URL/http://abc.sesta.com/tmp/tmp.jpg"; var imgsrc="gateway-URL/portal-server-URL/rewriter/tmp/tmp.jpg"; var imgsrc="gateway-URL/portal-server-URL /rewriter/JavaScript/variables/url/tmp/tmp.jpg";
// 上列所有 URL 皆為規則中所指定的 URL 類型且名稱為 imgsrc 的 JavaScript 變數。因此皆會前置閘道與 Portal Server URL。將依需前置位於 Portal Server URL 後的路徑。
//--> </SCRIPT> <br> Testing JavaScript variables! <br> <img src="gateway URL/portal-server-URL/rewriter /JavaScript/variables/url/images/logo.gif">
// 重新寫入此行是因為已於 default_gateway_ruleset 中定義規則 <Attribute name="src"/>
<br> Image </body> <br> Rewriting ends </html>
您可自下列路徑存取此範例:
portal-server-URL /rewriter/JavaScript/variables/expr/expr.html
將此範例中指定的規則新增 (若尚不存在) 至 [重新寫入 JavaScript 來源的規則] 部分的 default_gateway_ruleset 中。
在 Portal Server 管理主控台的 Portal Server 配置下,編輯 Rewriter 服務中的 default_gateway_ruleset。
若您新增此規則,請重新啟動閘道:
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> <head> <title>JavaScript EXPRESSION Variables Test Page</title> </head> <body> <script LANGUAGE="Javascript"> <!-- //Expression variables var expvar1="images"; var expvar2="/logo.gif"; var expvar = expvar1 + expvar2; document.write("<A HREF="+expvar+">EXPRESSION</A><P>") var expvar="/images/logo"+".gif"; document.write("<A HREF="+expvar+">EXPRESSION</A><P>") //--> </SCRIPT> Testing JavaScript EXPRESSION variables </body> </html>
<Variable type="EXPRESSION" name="expvar"/>
<html> <head> <title>JavaScript EXPRESSION Variables Test Page</title> </head> <body> <SCRIPT> // Rewriter appends the wrapper function psSRAPRewriter_convert_expression here </SCRIPT> <script LANGUAGE="Javascript"> <!-- //Expression variables var expvar1="images"; var expvar2="/logo.gif"; var expvar =psSRAPRewriter_convert_expression( expvar1 + expvar2);
// Rewriter 會將此陳述式右側識別為 JavaScript EXPRESSION 變數。Rewriter 無法在伺服器端計算出此表示式的值。因此,psSRAPRewriter_convert_expression 函數會被置於此表示式之前。此表示式將於用戶端計算,並視需要重新寫入。
document.write("<A HREF="+expvar+">EXPRESSION</A><P>")
// 將使用前一個陳述式之 expvar 的重新寫入值來計算此表示式的值。由於結果為一有效的 URL (範例中此處出現一個圖形),因此連結有效。
var expvar="gateway URL/portal-server-URL/images/logo"+".gif";
// Rewriter 會將 expvar 的右側識別為字串表示式。此表示式可於伺服端計算,因此可直接重新寫入。
document.write("<A HREF="+expvar+">EXPRESSION</A><P>")
// 將使用前一個陳述式之 expvar 的重新寫入值來計算此表示式的值。由於結果不是有效的 URL (於結果位置中未出現圖形),因此連結無效。
//--> </SCRIPT> Testing JavaScript EXPRESSION variables </body> </html>
您可自下列路徑存取此範例:
portal-server-URL /rewriter/JavaScript/variables/dhtml/dhtml.html
請確定您已於閘道服務的 [網域與子網域的代理伺服器] 清單中定義 abc.sesta.com。若未定義,則會採用直接連接,且不前置閘道 URL。
將此範例中指定的規則新增 (若尚不存在) 至 [重新寫入 JavaScript 來源的規則] 部分的 default_gateway_ruleset 中。在 Portal Server 管理主控台的 Portal Server 配置下,編輯 Rewriter 服務中的 default_gateway_ruleset。
若您新增此規則,請重新啟動閘道:
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> <head> <title>JavaScript DHTML Variable Test Page</title> </head> <body> <script LANGUAGE="Javascript"> <!-- //DHTML Var var dhtmlVar="<a href=../../images/test.html>" var dhtmlVar="<a href=/../images/test.html>" var dhtmlVar="<a href=/images/test.html>" var dhtmlVar="<a href=images/test.html>" var dhtmlVar="<a href=http://abc.sesta.com/images/test.html>" var dhtmlVar="<img src=http://abc.sesta.com/images/test.html>" //--> </SCRIPT> <br><br> Testing DHTML Variables <br><br> <img src="images/logo.gif">IMAGE </body> </html>
<Variable name="DHTML">dhtmlVar</Variable>
<html> <head> <title>JavaScript DHTML Variable Test Page</title> </head> <body> <script LANGUAGE="Javascript"> <!-- //DHTML Var var dhtmlVar="<a href=gateway-URL/portal-server-URL /rewriter/JavaScript/images/test.html>"
// JavaScript DHTML 規則會將 dhtmlVar 的右側識別為動態 HTML 內容。因此會套用 default_gateway_ruleset 檔案中的 HTML 規則。動態 HTML 包含 href 屬性。default_gateway_ruleset 定義規則 <Attribute name="href"/>。因此會重新寫入 href 屬性的值。但是 URL 並非絕對,因此網頁的基準 URL 與所需子目錄會取代相對 URL。最後會前置閘道 URL 以導出最後的重新寫入輸出。
var dhtmlVar="<a href=gateway-URL /portal-server-URL/../images/test.html>"
// 雖然已附加此網頁的基準 URL,且已前置閘道 URL,但是最後的 URL 卻無效。這是因為初始 URL /../images/test.html 不正確。
var dhtmlVar="<a href=gateway-URL /portal-server-URL/images/test.html>"
// 同樣,JavaScript DHTML 規則會將右側識別為動態 HTML 內容,並將之傳送至 HTML 規則。將套用 default_gateway_ruleset 中的 HTML 規則 <Attribute name="href"/>,且已如所示重新寫入陳述式。已前置閘道 URL 與 Portal Server URL。
var dhtmlVar="<a href=gateway URL/portal-server-URL/ rewriter/JavaScript/variables/dhtml/images/test.html>" var dhtmlVar="<a href=gateway URL/http://abc.sesta.com/images/test.html>" var dhtmlVar="<img src=gateway-URL/ http://abc.sesta.com/images/test.html>"
// JavaScript DHTML 規則會識別右側的動態 HTML 內容,並將陳述式傳送至 HTML 規則。將套用 default_gateway_ruleset 中的 <Attribute name="src"/> 規則。由於此 URL 是絕對 URL,因此僅需前置閘道 URL。請確定您已於 [網域與子網域的代理伺服器] 清單中定義 abc.sesta.com 以便重新寫入此 URL。
//--> </SCRIPT> <br><br> Testing DHTML Variables <br><br> <img src="gateway-URL/portal-server-URL/ rewriter/JavaScript/variables/dhtml/images/logo.gif">
// 重新寫入此行是因為已於 default_gateway_ruleset 中定義規則 <Attribute name="src"/>。
<br><br> Image </body> </html>
您可自下列路徑存取此範例:
portal-server-URL /rewriter/JavaScript/variables/djs/djs.html
請確定您已於閘道服務的 [網域與子網域的代理伺服器] 清單中定義 abc.sesta.com。若未定義,則會採用直接連接,且不前置閘道 URL。
將此範例中指定的兩個規則新增 (若尚不存在) 至 [重新寫入 JavaScript 來源的規則] 部分的 default_gateway_ruleset 中。在 Portal Server 管理主控台的 Portal Server 配置下,編輯 Rewriter 服務中的 default_gateway_ruleset。
重新啟動閘道:
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> <head> <title>Dynamic JavaScript Variable Test Page</title> </head> <body> <script LANGUAGE="Javascript"> <!-- var dJSVar="var dJSimgsrc=\q/tmp/tmp/jpg\q;" var dJSVar="var dJSimgsrc=\q../../../tmp/tmp/jpg\q;" var dJSVar="var dJSimgsrc=\qhttp://abc.sesta.com/tmp/tmp/jpg\q;" //--> </SCRIPT> <br> Testing Dynamic JavaScript Variables <br> <img src="images/logo.gif"> <br> Image </body> </html>
<Variable name="dJSVar" type="DJS"/> <Variable name="dJSimgsrc" type="URL"/>
<html> <head> <title>Dynamic JavaScript Variable Test Page</title> </head> <body> <script LANGUAGE="Javascript"> <!-- var dJSVar="var dJSimgsrc=\qgateway-URL /portal-server-URL/tmp/tmp/jpg\q;" var dJSVar="var dJSimgsrc=\qgateway-URL /portal-server-URL/rewriter/tmp/tmp/jpg\q;" var dJSVar="var dJSimgsrc=\qgateway-URL /http://abc.sesta.com/tmp/tmp/jpg\q;"
// 所有上述陳述式皆會使用閘道及 Portal Server URL 重新寫入。將依需要前置適當的路徑。第一個規則會將 dJSVar 右側識別為動態 JavaScript 變數。然後傳送至第二個規則;第二個規則會將 dJSimgsrc 右側識別為 URL 類型的 JavaScript 變數。將相應進行重新寫入。
//--> </SCRIPT> <br> Testing Dynamic JavaScript Variables <br> <img src="gateway-URL/portal-server-URL /rewriter/JavaScript/variables/djs/images/logo.gif">
// 重新寫入此行是因為已於 default_gateway_ruleset 中定義規則 <Attribute name="src"/>。
<br> Image </body> </html>
您可自下列路徑存取此範例:
portal-server-URL /rewriter/JavaScript/variables/system/system.html
將此範例中指定的規則新增 (若尚不存在) 至 [重新寫入 JavaScript 來源的規則] 部分的 default_gateway_ruleset 中。
在 Portal Server 管理主控台的 Portal Server 配置下,編輯 Rewriter 服務中的 default_gateway_ruleset。
重新啟動閘道:
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> <head> <title>JavaScript SYSTEM Variables Test Page</title> </head> <body> <script LANGUAGE="Javascript"> <!-- //SYSTEM Var alert(window.location.pathname); //document.write ("<A HREF="+window.location.pathname+">SYSTEM</A><P>") //--> </SCRIPT> Testing JavaScript SYSTEM Variables <br> This page displays the path where the current page is located when loaded. </body> </html>
<Variable name="window.location.pathname" type="SYSTEM"/>
<html> <head> <title>JavaScript SYSTEM Variables Test Page</title> </head> <body> <SCRIPT> convertsystem function definition... </SCRIPT> <script LANGUAGE="Javascript"> <!-- //SYSTEM Var alert(psSRAPRewriter_convert_system (window.location, window.location.pathname, "window.location"));
// Rewriter 會將 window.location.pathname 識別為 JavaScript SYSTEM 變數。此變數的值無法於伺服器端判定。因此 Rewriter 會在變數前前置 psSRAPRewriter_convert_pathname 函數。此包裝函數可於用戶端判定此變數的值,然後依需要重新寫入。
//--> </SCRIPT> Testing JavaScript SYSTEM Variables <br> This page displays the path where the current page is located when loaded. </body> </html>
您可自下列路徑存取此範例:
portal-server-URL /rewriter/JavaScript/functions/url/url.html
將此範例中指定的規則新增 (若尚不存在) 至 [重新寫入 JavaScript 來源的規則] 部分的 default_gateway_ruleset 中。在 Portal Server 管理主控台的 Portal Server 配置下,編輯 Rewriter 服務中的 default_gateway_ruleset。
重新啟動閘道:
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> <body> JavaScript URL Function Test Page <br> <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> </body> </html>
<Function type="URL" name="test" paramPatterns="y,y"/> <Function type="URL" name="window.open" paramPatterns="y"/>
<html> <body> JavaScript URL Function Test Page <br> <script language="JavaScript"> <!-- function test(one,two,three) { alert(one + "##" + two + "##" +three); } test("/test.html","../test.html","123"); window.open("gateway-URL/portal-server-URL /index.html","gen",width=500,height=500); //--> </SCRIPT> </body> </html>
您可自下列路徑存取此範例:
<portal-install-location>/SUNWportal/samples/rewriter
將此範例中指定的規則新增 (若尚不存在) 至重新寫入 JavaScript 來源的規則部分的 default_gateway_ruleset 中。
使用 Portal Server 管理主控台中的 Rewriter 服務來編輯 default_gateway_ruleset。
重新啟動閘道:
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> <body> JavaScript EXPRESSION Function Test Page <br><br><br> <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> </body> </html>
<Function type="EXPRESSION" name="jstest1" paramPatterns="y"/>
<html> <body> JavaScript EXPRESSION Function Test Page <br><br><br> <script> <!-- // various functions including psSRAPRewriter_ convert_expression appear here.//--> </SCRIPT> <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()));
// 此規則指出函數 jstest1 中類型為 EXPRESSION 的第一個參數需要重新寫入。此表示式的值為 /test/images/test.html。此值會被前置 Portal Server URL 與閘道 URL。
document.write("<a HREF="+test1+">Test</a>"); alert(test1); //--> </SCRIPT> </body> </html>
您可自下列路徑存取此範例:
portal-server-URL /rewriter/JavaScript/functions/dhtml/dhtml.html
將此範例中指定的規則新增 (若尚不存在) 至 [重新寫入 JavaScript 來源的規則] 部分的 default_gateway_ruleset 中。
在 Portal Server 管理主控台的 Portal Server 配置下,編輯 Rewriter 服務中的 default_gateway_ruleset。
重新啟動閘道:
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> <head> Testing JavaScript DHTML Functions <br> <br> <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> </head> <body BGCOLOR=white> <br><br> Testing document.write and document.writeln </body> </html>
<Function type="DHTML" name=" document.write" paramPatterns="y"/> <Function type="DHTML" name=" document.writeln" paramPatterns="y"/>
<html> <head> Testing JavaScript DHTML Functions <br> <br> <script> <!-- document.write(\q<a href="gateway-URL /portal-server-URL/index.html">write</a><BR>\q)
// 第一個規則指出 DHTML JavaScript 函數 document.write 的第一個參數需要重新寫入。Rewriter 會將第一個參數識別為一個簡單的 HTML 陳述式。在 default_gateway_ruleset 中的 HTML 規則部分具有規則 <Attribute name="href" />,此規則指出此陳述式需重新寫入。
document.writeln(\q<a href="gateway-URL /portal-server-URL/rewriter/JavaScript/functions/dhtml/index.html">writeln</a><BR>\q)
// 第二個規則指出 DHTML JavaScript 函數 document.writeln 的第一個參數需要重新寫入。Rewriter 會將第一個參數識別為一個簡單的 HTML 陳述式。在 default_gateway_ruleset 中的 HTML 規則部分具有規則 <Attribute name="href" />,此規則指出此陳述式需重新寫入。
document.write("http://abc.sesta.com/index.html<BR>") document.writeln("http://abc.sesta.com/index.html<BR>")
// 雖然 DHTML 規則識別出函數 document.write 與 document.writeln,但上述陳述式並未重新寫入。這是因為這個情況下的第一個參數並非簡單 HTML。其可能是任何字串而 Rewriter 不知如何將之重新寫入。
//--> </SCRIPT> </head> <body BGCOLOR=white> <br><br> Testing document.write and document.writeln </body> </html>
您可自下列路徑存取此範例:
portal-server-URL /rewriter/JavaScript/functions/djs/djs.html
請確定您已於閘道服務的 [網域與子網域的代理伺服器] 清單中定義 abc.sesta.com。
若未定義,則會採用直接連接,且不前置閘道 URL。
將此範例中指定的規則新增 (若尚不存在) 至 [重新寫入 JavaScript 來源的規則] 部分的 default_gateway_ruleset 中。在 Portal Server 管理主控台的 Portal Server 配置下,編輯 Rewriter 服務中的 default_gateway_ruleset。
重新啟動閘道:
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> Test for JavaScript DJS Functions <br> <script> menu.addItem(new NavBarMenuItem("All Available Information","JavaScript:top.location=\qhttp://abc.sesta.com\q")); //menu.addItem(new NavBarMenuItem("All Available Information","http://abc.sesta.com")); </script> </html>
<Function type="DJS" name="NavBarMenuItem" paramPatterns=",y"/> <Variable type="URL" name="top.location"/>
<html> Testing JavaScript DJS Functions <br> <script> menu.addItem(new NavBarMenuItem ("All Available Information","javaScript:top.location= \qgateway-URL/http://abc.sesta.com\q"));
// abc.sesta.com 是閘道服務的 [網域與子網域的代理伺服器] 清單中的一項。因此 Rewriter 需要重新寫入此 URL。但因為是絕對 URL,因此不需前置 Portal Server URL。DJS 規則指出 DJS 函數 NavBarMenuItem 的第二個參數需重新寫入。但是第二個參數又是 JavaScript 變數。重新寫入此變數的值需要第二個規則。第二個規則指出 JavaScript 變數 top.location 的值需重新寫入。由於符合所有條件,因此重新寫入 URL。
//menu.addItem(new NavBarMenuItem("All Available Information","http://abc.sesta.com"));
// 雖然 DJS 規則指出函數 NavBarMenuItem 的第二個參數需要重新寫入,但此陳述式中並未進行重新寫入。這是因為 Rewriter 未將第二個參數識別為簡單 HTML。
</script> </html>