フォローする

デザイン案における JavaScript コードの制限、挙動について

 

制限コードについて

セキュリティの観点で、Kaizen Platform のデザイン案で使える JavaScript コードを制限させて頂いております。

以下のコードが制限されております。

  • jQuery の Ajax カテゴリのメソッド
  • eval
  • alert
  • confirm
  • prompt
  • jQuery (jQueryの記述の際は $ をご利用ください)
  • top *1 (例: window.top )
  • self
  • parent *2 (例: window.parent )
  • XMLHTTPRequest
  • document
  • window

*1 jQueryの offset().top は使用可能です。
*2 jQueryの .parent() は使用可能です。

 

 

コードの挙動について

一部、エクスペリエンススクリプトに記述した時と、異なる挙動をするコードがあります。

※エクスペリエンススクリプトを使った方法をご案内しています。
※エクスペリエンススクリプトは使用方法を誤ると、デザインが反映されない・計測ができない等の問題が発生する可能性がありますので、ご利用は自己責任でお願いします。→ラウンド開始前に計測ができているか確認しましょう。
※ここではサンプルコードを公開していますが、より複雑なコードの提供や、お客様のページに合わせたコードの提供は、サポート対象外となっております。ご了承ください。

 

kzs

クリックトラッキングAPIなど、「kzs」を利用することがありますが、デザイン案のJSタブに「kzs」と記述しても動作しません。

デザイン案のJSで利用したい場合は、一度エクスペリエンススクリプトで定義することで、利用できるようになります。

例: クリックトラッキングAPIをデザイン案のJSで利用したい

そのまま記述した場合

//デザイン案js
kzs('trackClickGoals', 123456);

//結果(エディターで「反映」をクリックした時点でアラートが出ます)
Calling kzs is not allowed.

 

一度エクスペリエンススクリプトで定義してから使う場合

//エクスペリエンススクリプト
window.sendClickTrackGoals = function(goalId){
kzs('trackClickGoals', goalId);
};

//デザイン案js
sendClickTrackGoals(123456);

//結果(エディターで「反映」をクリックした際に下記のアラートが出ますが、期待通り動きます)
TypeError: Cannot read property 'useK1' of undefined

 

Promise

エクスペリエンススクリプトに記述した際は、Kaizen独自の「Promise」が呼び出され、IEでも動きます。
デザイン案のJSで「Promise」と記述しても、「window.Promise」が呼び出されるため、IEでは動きません。
エクスペリエンススクリプトと同じ「kzs.Promise」をデザイン案のJSでも利用したい場合は、一度エクスペリエンススクリプトで定義することで、利用できるようになります。

 

一度エクスペリエンススクリプトで定義してから使う

//エクスペリエンススクリプト
window.kzPromise = kzs.Promise;

//デザイン案js
var firstFunc = function () {
console.log("do firstFunc");
};

var secondFunc = function () {
console.log("do secondFunc");
};

kzPromise
.resolve()
.then(firstFunc)
.then(secondFunc)
.catch(function (e) {
console.error("variation exception", e);
});

//結果(IEでも動きます)
"do firstFunc"
"do secondFunc"

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください

0 コメント

サインインしてコメントを残してください。