【问题标题】:Google Apps Script libraries are not working on a webappGoogle Apps 脚本库无法在 Web 应用上运行
【发布时间】:2017-12-17 11:05:39
【问题描述】:

我是使用 Google Apps 脚本进行网络开发的新手,我很难尝试运行一个简单的网络应用程序,该应用程序应该使用 SlickNav jQuery Plugin 设置菜单示例。我成功将其设置为 GAS 库(可以查看源代码here)。该插件需要 jQuery 1.7 及更高版本,因此我还将 jQuery (v2.1.0) 设置为 GAS 库(单击 here 以查看代码)。

将它们都导入为库后:


my webapp 中,它在开发中就像一个魅力。模式:

但在production mode 中,它会抛出

“ReferenceError:未定义的“jQuery”。(第 1 行,文件“slicknav.js”,项目“slicknav”)”

我花了 3 天时间试图让这个示例运行起来。我在这个例子中遗漏了什么吗?有什么问题吗?有人能指出我正确的方向吗?

提前致谢。

【问题讨论】:

    标签: javascript jquery google-apps-script web-applications libraries


    【解决方案1】:

    您不能在 Apps 脚本中使用 JQuery 作为 Apps 脚本,因为 GAS 没有要操作的 DOM。

    如果您希望在 Web 应用程序中使用 JQuery 或任何其他 JavaScript 库,您需要使用 <script> 标记添加它。比如在你的<head>或者<body>标签下面添加<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

    Google 甚至有一组托管库,您可以将它们包含在您的网络应用程序中:https://developers.google.com/speed/libraries/


    如果您不想使用 CDN 服务(例如 google 托管库),您可以将源代码复制/粘贴到新的 GAS html 文件中,并将其包含在您的网络应用程序中。

    示例:

    jquery.html

    <script>
    //Paste jquery.min.js here
    </script>
    

    index.html

    <html>
        <head>
            <?!= HtmlService.createHtmlOutputFromFile('jquery').getContent(); ?>
        </head>
    </html>
    

    澄清后:

    JQuery 需要在 slicknav 之前加载,因为它需要它。看起来你是,但这就是它抛出的错误。我将首先简化您的流程并使用带有 CDN 托管库的脚本标签,看看是否可行。然后尝试将文件包含在您当前的项目中,看看是否可行...等尝试以这种方式隔离问题。

    值得注意的是,在部署时,您必须更新版本以应用和开发更改。

    【讨论】:

    • 我已经这样做了:script.google.com/d/…
    • JQuery 需要在 slicknav 之前加载,因为它需要它。看起来你是,但这就是它抛出的错误。我将首先简化您的流程并使用带有 CDN 托管库的脚本标签,看看是否可行。然后尝试将文件包含在您当前的项目中,看看是否可行...等尝试以这种方式隔离问题。
    • 我听从了您的建议,在喝了几个小时的咖啡之后,我注意到了两件事:1) GAS 没有(我认为仍然是)没有更新部署中的 webapp选项。每次部署它时我都必须创建一个新版本以查看更改,并且 2)我在 SlickNav 插件初始化时发现了一个逻辑错误(奇怪的是该错误没有影响在测试模式下运行的应用程序)。谢谢你的建议。您可以将您的评论作为答案。
    • 啊,是的,只要您想应用开发更改,就需要在将其部署为 Web 应用程序时更新版本。修改了我的答案。
    猜你喜欢
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多