【问题标题】:Button Click in Jade without Script Tag没有脚本标签的 Jade 中的按钮单击
【发布时间】:2016-11-30 06:58:44
【问题描述】:

我看到了 Jade 的按钮点击代码

   button(onclick=foo)
    script(foo(){alert('foo');})

我不想在我的渲染页面中添加任何脚本标签或任何 JavaScript 代码。如何才能从 express 或 node.js 文件中点击 Jade 中的任何按钮?

【问题讨论】:

    标签: javascript node.js express pug


    【解决方案1】:

    你可以使用内联javascript:

    button(onClick="javascript:alert('foo')")
    

    但是,这并不是真正的最佳选择,使用脚本标记/外部脚本可以使您的代码更具可读性和更易于调试。

    但是,您不能在不使用任何 JavaScript 的情况下使用 onclick 事件。如果您的约束条件是“无 JS”,则单击时无法发出警报(alert 也是一个 javascript 函数)

    如果您希望尽可能多地分离关注点,可以将 JS 代码放在单独的 .js 文件中,但仍需要将该文件包含在呈现的页面中。

    编辑:关于服务器/客户端交互的解释:

    当您在 Node/Express 中创建服务器时,您正在从您的模板生成资产(html 页面)。这一代,以及当用户到达您站点内的路线时如何处理,由服务器处理。

    服务器“提供”源代码页面(您通过单击“查看源代码”看到的文档给客户端,然后客户端对其进行解释。

    如果浏览器看到 Javascript 代码,它知道如何阅读它,并将添加您在代码中放置的所有事件、警报等。然后它将能够处理这些交互。在这种情况下,您的按钮事件与 Node/Express 无关

    TL;DR :服务器只将源代码发送给客户端,客户端负责读取和解释它。

    【讨论】:

    • xShire 我不想在我的渲染器页面上有任何 onclick 代码
    • node js 不可以吗?
    • 这是不可能的,如果你想要浏览器中的javascript函数,你需要客户端中的javascript代码
    • 服务器端代码不会处理您的客户端交互,例如单击按钮、显示警报等
    • @HüseyinOkumuş 我试图解释更多,请参阅编辑
    猜你喜欢
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    相关资源
    最近更新 更多