我正在尝试在我的布局 pug 模板中的脚本标记中包含一个多行 JavaScript 函数。它需要在脚本标签中运行,即它必须以这种方式完成并且不能作为值传递到模板中,因为它是 Node 应用程序中的客户端逻辑。

这在普通 HTML 中是等价的:

<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId            : '1111111',
      autoLogAppEvents : true,
      xfbml            : true,
      version          : 'v5.0'
    });
  };
</script>
<script async defer src="https://connect.facebook.net/en_US/sdk.js"></script>

由于我使用的是 pug 而不是普通的 HTML,因此我无法正确设置格式并且它不起作用。哈巴狗 docs 只有非常基本的例子,例如:
 script
      include script.js


  script(src='/javascripts/jquery.js')
  script(src='/javascripts/app.js')

这是我当前的 pug 文件,也是我最近尝试让它工作的尝试。
layout.pug
doctype html
html
  head
  body
  script
    //works - just testing
    - const x = 1
    //works - just testing
    - function test(){console.log('test')}
    //error - not a real error. Seems like syntax
    // Content Security Policy: The page’s settings blocked the loading of a resource at http://localhost:3000/favicon.ico
    - function testWrapper(){
        window.fbAsyncInit = function() {
          FB.init({
            appId            : '1111111',
            autoLogAppEvents : true,
            xfbml            : true,
            version          : 'v4.0'
          });
        }
      }
    - testWrapper()
  // not sure if this is working, but I don't think so.
 script(async defer src="https://connect.facebook.net/en_US/sdk.js")

我怎样才能让它发挥作用?

这是我尝试使用的 Facebook JS SDK here

注意 :我建议这不是 this 的副本,因为在脚本标签中插入的 JS 代码稍微复杂一些。

最佳答案

我想我使用 2 小时前的第一次解决方案尝试解决了它。它当时没有用,但是间距肯定已经关闭并抛出了错误,而且似乎需要 script. 才能工作,所以它不仅仅是间距。现在我得到了 200 秒的 FB SDK,所以它必须工作。
在 pug 中包含 SDK 代码,我认为:

script.
      window.fbAsyncInit = function() {
        FB.init({
          appId            : '111111',
          autoLogAppEvents : true,
          xfbml            : true,
          version          : 'v5.0'
        });
      };
 script(async defer src="https://connect.facebook.net/en_US/sdk.js")
注意:我想将此解决方案归功于此 Stack Overflow post 。我在 pug 文档中没有看到这个 script.,所以我很感谢 @Felipe-sabino 指出它。

关于javascript - 如何在 Pug 和 Facebook JS SDK 中编写多行脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58617462/

10-12 15:13