メインコンテンツまでスキップ
バージョン: 21 R3

WA SET URL FILTERS

WA SET URL FILTERS ( * ; object : Text ; filtersArr : Text array ; allowDenyArr : Boolean array )
WA SET URL FILTERS ( object : Variable, Field ; filtersArr : Text array ; allowDenyArr : Boolean array )

引数型説明
*演算子→指定時, objectはオブジェクト名 (文字列) 省略時, objectは変数
objectany→オブジェクト名 (* 指定時) または 変数 (* 省略時)
filtersArrText array→フィルタ配列
allowDenyArrBoolean array→許可-拒否配列
履歴
リリース内容
11 SQL Release 2初出

説明​

WA SET URL FILTERS コマンドは、* と object 引数で指定したWebエリアで、1 つ以上のフィルタを設定するために使用します。

リクエストされたページをロードする前に、4D はフィルタのリストを照会し、ターゲットのURL に接続が許可されているかどうかを調べます。URLの判定はfiltersArr とallowDenyArr 配列の内容に基づき行われます。

リクエストされたURL が許可されない場合、ページはロードされず、On URL Filtering フォームイベントが生成されます。

filtersArr と allowDenyArr 配列は同期されていなければなりません。

  • filtersArr 配列のそれぞれの要素には、フィルタするURL が含まれます。1 つ以上の文字を表すワイルドカードとして * を使用できます。
  • allowDenyArr 配列のそれぞれ対応する要素には、URL を許可 (True) するか拒否 (False) するかを示すブール値が含まれます。

同じURL が許可および拒否されているなど、設定レベルで矛盾がある場合、最後の設定が考慮されます。

フィルタを無効にするには、コマンドを呼び出す際に空の配列を渡すか、配列の最後の要素で、filtersArr 配列に"*" を、allowDenyArr 配列にTrueを渡します。

コマンドが実行されると、フィルタはWeb エリアのプロパティとなります。filtersArr とallowDenyArr が削除されたり初期化されたりしても、コマンドが再実行されるまでフィルタは有効です。エリアで有効になっているフィルタを取得するには、WA GET URL FILTERS コマンドを使用しなければなりません。

重要: このコマンドによって実行されるURLフィルタリングは、WA OPEN URL コマンドと"javascript:"で始まるURLを除き、ページの主URLを変更するリクエストであればユーザーからのリクエストであってもjavascriptコードであっても4Dコードであっても、どのようなリクエストに対しても適用されます。

例題 1​

.org, .net そして .fr Web サイトへのアクセスを禁止したい場合:

 ARRAY TEXT($filters;0)
 ARRAY BOOLEAN($AllowDeny;0)
 
 APPEND TO ARRAY($filters;"*.org")
 APPEND TO ARRAY($AllowDeny;False)
 APPEND TO ARRAY($filters;"*.net")
 APPEND TO ARRAY($AllowDeny;False)
 APPEND TO ARRAY($filters;"*.fr")
 APPEND TO ARRAY($AllowDeny;False)
 WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)

例題 2​

日本のサイト以外へのアクセスを禁止したい場合(.jp):

 ARRAY TEXT($filters;0)
 ARRAY BOOLEAN($AllowDeny;0)
 
 APPEND TO ARRAY($filters;"*") //Select all
 APPEND TO ARRAY($AllowDeny;False) //Deny all
 APPEND TO ARRAY($filters;"www.*.jp") //Select *.jp
 APPEND TO ARRAY($AllowDeny;True) //Allow
 WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)

例題 3​

4D のWeb サイトにのみアクセスを許可する場合 (.com, .fr, .es, etc.):

 ARRAY TEXT($filters;0)
 ARRAY BOOLEAN($AllowDeny;0)
 
 APPEND TO ARRAY($filters;"*") //Select all
 APPEND TO ARRAY($AllowDeny;False) //Deny all
 APPEND TO ARRAY($filters;"www.4D.*") //Select 4d.fr, 4d.com...
 APPEND TO ARRAY($AllowDeny;True) //Allow
 WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)

例題 4​

ローカルのドキュメントにのみアクセスを許可 (C://doc フォルダー内):

 ARRAY TEXT($filters;0)
 ARRAY BOOLEAN($AllowDeny;0)
 
 APPEND TO ARRAY($filters;"*") //Select all
 APPEND TO ARRAY($AllowDeny;False) //Deny all
 APPEND TO ARRAY($filters;"file://C:/doc/*")
  //Select the path file:// allowed
 APPEND TO ARRAY($AllowDeny;True) //Allow
 WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)

例題 5​

特定のキーワードを含むサイトを除いて許可する場合:

 ARRAY TEXT($filters;0)
 ARRAY BOOLEAN($AllowDeny;0)
 
 APPEND TO ARRAY($filters;"*")
 APPEND TO ARRAY($AllowDeny;True) //Allow all
 APPEND TO ARRAY($filters;"*elcaro*") //Deny all that contain elcaro
 APPEND TO ARRAY($AllowDeny;False)
 WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)

例題 6​

特定のIP アドレスへのアクセスを拒否する場合:

 ARRAY TEXT($filters;0)
 ARRAY BOOLEAN($AllowDeny;0)
 APPEND TO ARRAY($filters;"*") //Select all
 
 APPEND TO ARRAY($AllowDeny;True) //Allow all
 APPEND TO ARRAY($filters;86.83.*")  //Select IP addresses beginning with 86.83.
 APPEND TO ARRAY($AllowDeny;False) //Deny
 APPEND TO ARRAY($filters;86.1*")  //Select IP addresses beginning with 86.1 (86.10, 86.135 etc.)
 APPEND TO ARRAY($AllowDeny;False) //Deny
 WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)
  //(Note that the IP address of a domain may vary).

参照​

WA GET URL FILTERS
WA SET EXTERNAL LINKS FILTERS

プロパティ​

コマンド番号1030
スレッドセーフであるno