<Variable name="variableName" [type="URL|EXPRESSION|DHTML|DJS|SYSTEM" source="*"]>
JavaScript の変数は、その値の種類に応じてさらに次の 5 つのカテゴリに分類されます。
この変数の値は、URL として扱うことができる単純文字列です。
この節は、次の項目から構成されています。
<Variable name="variableName" type="URL" [source="*"]>
各表記の意味は次のとおりです。
variableName は変数名です。variableName の値が書き換えられます (必須)。
type は URL 変数です (必須、値は URL でなければならない)。
source は、この JavaScript 変数が含まれるページの URI です (省略可能、デフォルト * は任意のページを意味する)。
ベース URL が次の URL であると仮定します。
http://abc.siroe.com/tmp/page.html
ページコンテンツ
<script LANGUAGE="Javascript"> <!-- //URL Variables var imgsrc1="/tmp/tmp.jpg"; var imgsrc2="http://srap.sesta.com/tmp/tmp.jpg"; var imgsrc3=imgsrc2; //--> </SCRIPT>
ルール
<Variable name="imgsrc*" type="URL"/>
出力
<script LANGUAGE="Javascript"> <!-- //URL Variables var imgsrc="gateway-URL/http://abc.siroe.com/tmp/tmp.jpg"; var imgsrc="gateway-URL/http://srap.sesta.com/tmp/tmp.jpg"; var imgsrc3=imgsrc2; //--> </SCRIPT>
説明
タイプが URL で、名前が imgsrc から始まるすべての変数が書き換えられます。出力の最初の行では、ゲートウェイ URL と変数が表示されるページのベース URL が先頭に指定されます。2 行目にはすでに絶対パスが指定されているため、ゲートウェイ URL のみがプレフィックスとして追加されます。3 番目の変数 imagsrc2 は、値が文字列ではなく別の JavaScript 値であるため書き換えられません。
EXPRESSION 変数の右側には式が指定されます。この式の結果は URL です。リライタは、このような式をサーバーで評価できないため、HTML ページに JavaScript 関数 (psSRAPRewriter_convert_expression) を追加します。この関数はパラメータとして式をとり、クライアントブラウザで要求される URL に対して式を評価します。
文に含まれる URL が単一の URL であるか EXPRESSION URL であるかが明らかでないときは、どちらの場合にも適用できる EXPRESSION ルールを使用してください。
この節は、次の項目から構成されています。
<Variable name="variableName" [type="EXPRESSION" source="*"]/>
各表記の意味は次のとおりです。
variableName は、値として式を持つ JavaScript 変数の名前です (必須)。
type は JavaScript 変数のタイプです (省略可能、デフォルト値は EXPRESSION)。
source はページの URI です (省略可能、デフォルト * は任意のソースを意味する)。
ページのベース URL が次の URL であると仮定します。
http://abc.siroe.com/dir1/dir2/page.html
ページコンテンツ
<script LANGUAGE="Javascript"> <!-- //Expression variables var expvar= getURIPreFix() + "../../images/graphics"+".gif"; document.write("<A HREF="+expvar+">Link to XYZ content</A><P>") var expvar="../../images/graphics"+".gif"; //--> </SCRIPT>
ルール
<Variable name="expvar" type="EXPRESSION"/> または <Variable name="expvar"/>
出力
var expvar=psSRAPRewriter_convert_expression(getURIPreFix() + "../../images/graphics"+".gif");document.write("<a href="+expvar+">> Link to XYZ content</A><P>")var expvar="gateway-URL/http://abc.siroe.com/images/graphics"+".gif";
説明
関数 psSRAPRewriter_convert_expression が、式変数 expvar の最初の行の右側の部分に先行して指定されます。この関数は、実行時に式を処理し、コンテンツを書き換えます。3 行目では、値が簡易 URL に書き換えられます。
これは HTML コンテンツを含む JavaScript 変数です。
この節は、次の項目から構成されています。
<Variable name="variableName" type="DHTML" [source="*"]/>
各表記の意味は次のとおりです。
variableName は DHTML コンテンツを持つ JavaScript 変数の名前です (必須)。
type は変数のタイプです (必須、値は DHTML である必要がある)。
source はページの URL です (省略可能、デフォルト * は任意のページを意味する)。
ページのベース URL が次の URL であると仮定します。
http://abc.sesta.com/graphics/set1/ graphics/jsscript/JSVAR/page.html
ページコンテンツ
<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>" //--> </SCRIPT>
ルール
<Variable name="dhtmlVar" type="DHTML"/> <Attribute name="href"/> または <Attribute name="href" tag="a"/>
出力
<script LANGUAGE="Javascript"> <!-- //DHTML Var var dhtmlVar="<a href=gateway-URL /http://abc.sesta.com/graphics/ set1/graphics/images/test.html>" var dhtmlVar="<a href=gateway-URL/ http ://abc.sesta.com/images/test.html>" var dhtmlVar="<a href=gateway-URL/ http://abc.sesta.com/graphics/set1/ graphics/jscript/JSVAR/images/test.html>" //--></SCRIPT>
説明
JavaScript パーサーは dhtmlVar の値を HTML コンテンツとして読み取り、HTML パーサー経由でそのコンテンツを送信します。HTML パーサーは HTML ルールを適用するため、href 属性ルールとの一致によって URL が書き換えられます。
これは JavaScript コンテンツを含む JavaScript 変数です。
この節は、次の項目から構成されています。
<Variable name="variableName" type="DJS" [source="*"]/>
各表記の意味は次のとおりです。
variable は JavaScript を値として持つ JavaScript 変数の名前です。
ページのベース URL が次の URL であると仮定します。
http://abc.sesta.com/dir1/dir2/dir3/jscript/dir4/page.html
ページコンテンツ
//DJS Var 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;"
ルール
<Variable name="DJS">dJSVar/> <Variable name="URL">dJSimgsrc/>
出力
//DJS Var - need 2 rules var dJSVar="var dJSimgsrc=\qgateway-URL /http://abc.sesta.com/tmp/tmp.jpg\q;"var dJSVar="var dJSimgsrc=\q gateway-URL/http ://abc.sesta.com/dir1/dir2/dir3/jscript/tmp/tmp.jpg\q;" var dJSVar="var dJSimgsrc=\qgateway-URL/ http://abc.sesta.com/tmp/tmp.jpg\q;"
説明
ここでは、2 つのルールが必要です。最初のルールはダイナミック JavaScript 変数 dJSVar を検索します。この変数の値は、同じくタイプが URL の JavaScript になります。次に 2 番目のルールが適用され、この JavaScript 変数の値が書き換えられます。
これらは、使用によって宣言されない変数であり、サポートは限定されます。これらの変数は JavaScript 標準の一部として利用可能です。たとえば、window.location.pathname などがあります。
この節は、次の項目から構成されています。
<Variable name="variableName" type="SYSTEM" [source="*"]/>
各表記の意味は次のとおりです。
variableName は、JavaScript のシステム変数です (必須)。値は document.URL、document.domain、location、doument.location、location.pathname、location.href、location.protocol、location.hostname、location.host、および location.port のいずれかのパターンと一致する必要があります。これは、すべて generic_ruleset に含まれます。これらのシステム var ルールを変更しないでください。
type には、システムタイプの値を指定します (必須、値は DJS)。
source はそのページの URL です (省略可能、デフォルト * は任意のページを意味する)。
ページのベース URL が次の URL であると仮定します。
http://abc.siroe.com/dir1/page.html
ページコンテンツ
<script LANGUAGE="Javascript"> <!-- //SYSTEM Var alert(window.location.pathname); //--> </SCRIPT>
ルール
<Variable name="window.location.pathname" type="SYSTEM"/>
出力
</SCRIPT> <SCRIPT LANGUAGE="Javascript"> <!-- //SYSTEM Var alert(psSRAPRewriter_convert_pathname(window.location.pathname)); //--> </SCRIPT>
説明
リライタは、ルールと一致するシステム変数を検索し、プレフィックスとして psSRAPRewriter_convert_system 関数を追加します。この関数は、実行時にシステム変数を処理し、処理後の URL を書き換えます。