Google Web Designer を数か月使用していますが、質問があります。GWDでできるかどうかわかりません:
index.html
3 つのページから選択して、別のランダムなページをファイルにロードする必要があります。リロードを押すと、別のランダムなページが読み込まれます。ページは順番どおりに表示する必要はありません。これを行う方法を見つけようとしていますが、これまでのところ成功していません。
Google Web Designer を数か月使用していますが、質問があります。GWDでできるかどうかわかりません:
index.html
3 つのページから選択して、別のランダムなページをファイルにロードする必要があります。リロードを押すと、別のランダムなページが読み込まれます。ページは順番どおりに表示する必要はありません。これを行う方法を見つけようとしていますが、これまでのところ成功していません。
これは、カスタム JavaScript イベント ハンドラーを使用して実現できます。
この<gwd-doubleclick>
要素は、adinitialized
コンテンツが表示される前にイベントを発生させます。これを使用して、ユーザーが最初のページを表示する前に変更が適用されていることを確認できます。.goToPage(n)
また、ページを切り替えるために使用できるメソッドも提供します。(goToPage
には、ページ間のアニメーションを制御するために使用できる追加の引数がありますが、すぐにジャンプするという既定の動作が必要なため、それらを無視できます。)
まず、新しいイベント ハンドラーを追加します。
構成:gwd.goToRandomPage
次のコードの任意の名前 ( など):
var pages = 3; // adjust as appropriate
var targetPage = Math.floor(Math.random() * pages);
event.target.goToPage(targetPage);
コード ビューでは、これにより次のような結果が生成されることがわかります。
// This script block is auto-generated. Please do not edit!
gwd.actions.events.registerEventHandlers = function(event) {
gwd.actions.events.addHandler('document.body', 'adinitialized', gwd.goToRandomPage, false);
};
gwd.actions.events.deregisterEventHandlers = function(event) {
gwd.actions.events.removeHandler('document.body', 'adinitialized', gwd.goToRandomPage, false);
};
GWD UI をスキップして、標準の JavaScript イベント処理 API を使用して同じことを行うこともできます。次のようになります。
document.body.addEventListener('adinitialized', function() {
var pages = 3; // adjust as appropriate
var targetPage = Math.floor(Math.random() * pages);
event.target.goToPage(targetPage);
});
ただし、GWD が要素の名前変更などを自動的に処理できなくなるため、通常はこれを避けた方がよいでしょう。
すべてのページから選択するのではなく、特定のページ セットの 1 つにジャンプしたい場合は、代わりにページ ID の配列を使用できます。
var pageIds = ['page1_1', 'page1_2'];
var targetPage = pageIds[Math.floor(Math.random() * pageIds.length)];
event.target.goToPage(targetPage);
今後の参考のために、ドキュメントに記載されているほとんどのコンポーネント API を見つけることができます。コードを含まない GWD に関する質問、またはスタック オーバーフローに適さない GWD に関する質問は、代わりにGWD サポート フォーラムで質問する必要があります。