コントローラJavaScriptは、Webページをレンダリングするために、グローバルSCSオブジェクトで定義されている変数およびプロパティを使用します。グローバルJavaScriptオブジェクトは、controller.jsファイルの包含前にコントローラ・ファイルで定義する必要があります。カスタマイズに使用できるSCSオブジェクトには2つの主要プロパティがあります:
SCS.sitePrefix
変数は、オンライン・サイトのパス接頭辞を定義します。通常、これはsite/<siteName>/
にデフォルト設定されます。
コントローラJavaScriptは、この値を使用して、どのWebページを表示するかを決定します。たとえば、ブラウザが/site/SampleSite/products/index.html
のページをリクエストしている場合、sitePrefix /site/SampleSite/
により、JavaScriptはサイトのproducts/index.html
ページを表示するように計算できます。sitePrefixは、文字"/
"で始まり、終わる文字列値である必要があることに注意してください。
/intranet/ExampleSite/
に設定すると、Webサイトをデフォルトの/site/SampleSite/
パス接頭辞ではなく、そのパス名によりブラウザで配信できます。
注:
ブラウザ内のURLがサイト接頭辞と一致しない場合、内部的に、デフォルト・コントローラJavaScriptは"/
"をsitePrefixとして使用します。これにより、カスタマイズすることなく、バニティ・ドメインを使用してサイトを提供できます。定義されている場合、計算ロジックが実行される前に、SCS.preInitRendering
関数がコントローラJavaScriptコードによってコールされます。これは、コントローラJavaScriptの基本操作をオーバーライドするカスタム・コントローラ・ファイルでの定義で役立つ関数です。
定義されている場合、SCS.preInitRendering
が関数である必要があります。これは、引数なしでコールされ、戻り値は必要なく、処理されません。
SCS.getDeviceInfo
関数により、コントローラJavaScript内のデバイス検出ロジックのカスタマイズが可能になります。この検出は、ページのモバイル・バージョンまたはレスポンシブ・バージョンのいずれを配信するかどうかの決定に使用されます。
SCS.getDeviceInfo
関数は、引数を取得せず、2つのプロパティを含むJavaScriptを返します:
isMobile - 現在のデバイスがスマートフォンなどのモバイル・クライアントであることを示すブール・プロパティ。
isIOS - 現在のデバイスがisIOSベースのオペレーティング・システムで実行されていることを示すブール・プロパティ。
カスタム・コントローラがSCS.getDeviceInfo
をオーバーライドしない場合、組込みのデフォルト実装が使用されます。