【问题标题】:Google App Maker: external javascript libraryGoogle App Maker:外部 JavaScript 库
【发布时间】:2018-10-16 20:57:40
【问题描述】:

我正在使用谷歌应用程序制造商创建 POC。我计划使用一个依赖于 Jquery 的 JS 库。我已将 JQuery 列为“外部资源”开始,并在我的 html 上添加了一个 H1 元素,并使用以下代码作为客户端脚本的一部分:

$(document).ready(function(){
   $("h1").click(function(){
      console.log("jquery works");
   });
});

当我预览我的应用并单击元素时,没有记录任何内容。当我检查元素时,我可以看到 Jquery 库和上面的代码,但是当我单击元素时没有触发事件。有什么建议么?最终目标是能够在我正在创建的应用程序中使用https://querybuilder.js.org/

【问题讨论】:

  • 您是否使用了小部件构建器并添加了您指定为“H1”类型标签的“标签”小部件,还是使用文档 appendElement 添加了 H1 类型元素?
  • @MarkusMalessa 我从小部件中拖放了一个 html 框,然后在右侧列出的属性中添加了内容:

    test

    。当我预览页面时,我可以看到它准确呈现。

标签: google-app-maker


【解决方案1】:

我最好的猜测是,当你说你添加了代码时:

$(document).ready(function(){
   $("h1").click(function(){
      console.log("jquery works");
   });
});

对于客户端脚本,您所做的是在应用制作工具的 SCRIPTS 部分下创建一个客户端脚本,然后在其中添加代码。如果是这样,那就是它不起作用的原因。

您需要做的是在小部件事件处理程序中使用客户端脚本。每个小部件都有事件处理程序,HTML 小部件也不例外。我建议将代码添加到 HTML 小部件的 onAttach 事件处理程序中:

}

另外,您可以去掉document.ready 部分,只使用您在上图中看到的代码。这应该可以解决问题。

奖励:如果您将使用 classesids,您需要使用 allowUnsafeHtml 选项:

我希望这对现在有所帮助。如果您需要其他东西,我很乐意为您提供帮助。

【讨论】:

  • 只是想知道,这是因为 App Maker 加载外部库的顺序与脚本相比吗?我在应用程序启动客户端脚本中使用 h1 click 处理程序尝试了相同的操作,但它也没有工作,但正如您所建议的,如果您将 jquery click 事件放在小部件 onAttach 事件中,那么它将起作用。
  • @MarkusMalessa 不是。实际上,您放入客户端脚本的所有代码都需要使用小部件事件处理程序来调用。例如一个按钮,它将是onClick 事件处理程序;一个下拉菜单,可能是onValueChange 事件处理程序等。你明白了。
  • 我觉得这有点有趣,因为 App Maker 使用 Google Apps 脚本。在 GAS 中,我可以将我的 onClick 留在 HTML 中,只要我先加载我的
  • 谢谢@Morfinismo,完成了这项工作。我认为小部件是在 DOM 准备好后动态添加到 DOM 中的,这就是为什么事件没有附加到小部件的原因。
  • @jorgeACacon 我相信根据文档所说的你是对的......阅读此developers.google.com/appmaker/ui/widgets#creation
猜你喜欢
  • 2019-07-27
  • 2020-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多