Javascript 从Google Web Designer中的随机页面开始
我已经使用谷歌网页设计师几个月了,我有一个问题。我不知道是否可以在GWD中执行以下操作:Javascript 从Google Web Designer中的随机页面开始,javascript,html,random,google-web-designer,Javascript,Html,Random,Google Web Designer,我已经使用谷歌网页设计师几个月了,我有一个问题。我不知道是否可以在GWD中执行以下操作: 我希望index.html文件加载一个不同的随机页面,在3个页面之间进行选择。当你点击“重新加载”时,它会加载另一个随机页面,依此类推。页面不需要按顺序显示。我正试图找出如何做到这一点,但到目前为止还没有成功。这可以通过自定义JavaScript事件处理程序来实现 元素在显示任何内容之前触发一个a初始化的事件,我们可以使用该事件确保在用户看到第一页之前应用我们的更改。它还提供了一个.goToPage(n)方
我希望
index.html
文件加载一个不同的随机页面,在3个页面之间进行选择。当你点击“重新加载”时,它会加载另一个随机页面,依此类推。页面不需要按顺序显示。我正试图找出如何做到这一点,但到目前为止还没有成功。这可以通过自定义JavaScript事件处理程序来实现
元素在显示任何内容之前触发一个a初始化的
事件,我们可以使用该事件确保在用户看到第一页之前应用我们的更改。它还提供了一个.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自动处理诸如元素重命名之类的事情
如果您想跳转到一组特定页面中的一个,而不是从所有页面中进行选择,则可以使用页面ID数组
var pageIds = ['page1_1', 'page1_2'];
var targetPage = pageIds[Math.floor(Math.random() * pageIds.length)];
event.target.goToPage(targetPage);
作为将来的参考,您可以找到大多数组件API。有关GWD的问题,如果不涉及代码或不适合堆栈溢出,则应改为在上提问。非常感谢!您的解决方案非常有效:)