从 Google Web Designer 中的随机页面开始
Starting from random pages in Google Web Designer
我已经使用 Google Web Designer 几个月了,我有一个问题。不知道在GWD里可不可以:
我希望 index.html
文件加载不同的随机页面,在 3 个页面之间进行选择。当您点击重新加载时,它应该加载另一个随机页面,依此类推。页面不需要按顺序显示。我正在尝试找出如何做到这一点,但到目前为止我没有成功。
这可以通过自定义 JavaScript 事件处理程序来完成。
<gwd-doubleclick>
元素在显示任何内容之前触发 adinitialized
事件,我们可以使用它来确保在用户看到第一页之前应用我们的更改。它还提供了一个 .goToPage(n)
方法,我们可以使用它来切换页面。 (goToPage
有额外的参数可用于控制页面之间的动画,但我们可以忽略这些参数,因为我们想要立即跳转的默认行为。)
首先添加一个新的事件处理程序。
- 目标: document.body
- 事件: Google 广告:广告已初始化
- 操作:自定义:添加自定义操作
配置:一个你选择的名字(比如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 自动处理诸如元素重命名之类的事情。
如果您想跳转到一组特定页面中的一个,而不是从所有页面中进行选择,您可以使用一组页面 ID。
var pageIds = ['page1_1', 'page1_2'];
var targetPage = pageIds[Math.floor(Math.random() * pageIds.length)];
event.target.goToPage(targetPage);
为了将来参考,您可以找到大多数组件 API described in the documentation. Questions about GWD that do not involve code or are otherwise unsuitable for Stack Overflow should be asked on the GWD support forum。
我已经使用 Google Web Designer 几个月了,我有一个问题。不知道在GWD里可不可以:
我希望 index.html
文件加载不同的随机页面,在 3 个页面之间进行选择。当您点击重新加载时,它应该加载另一个随机页面,依此类推。页面不需要按顺序显示。我正在尝试找出如何做到这一点,但到目前为止我没有成功。
这可以通过自定义 JavaScript 事件处理程序来完成。
<gwd-doubleclick>
元素在显示任何内容之前触发 adinitialized
事件,我们可以使用它来确保在用户看到第一页之前应用我们的更改。它还提供了一个 .goToPage(n)
方法,我们可以使用它来切换页面。 (goToPage
有额外的参数可用于控制页面之间的动画,但我们可以忽略这些参数,因为我们想要立即跳转的默认行为。)
首先添加一个新的事件处理程序。
- 目标: document.body
- 事件: Google 广告:广告已初始化
- 操作:自定义:添加自定义操作
配置:一个你选择的名字(比如
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 自动处理诸如元素重命名之类的事情。
如果您想跳转到一组特定页面中的一个,而不是从所有页面中进行选择,您可以使用一组页面 ID。
var pageIds = ['page1_1', 'page1_2'];
var targetPage = pageIds[Math.floor(Math.random() * pageIds.length)];
event.target.goToPage(targetPage);
为了将来参考,您可以找到大多数组件 API described in the documentation. Questions about GWD that do not involve code or are otherwise unsuitable for Stack Overflow should be asked on the GWD support forum。