javascript - 如何在 Pug 和 Facebook JS SDK 中编写多行脚本

标签 javascript node.js pug facebook-javascript-sdk

我正在尝试在布局 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. 才能工作,所以这不仅仅是间距。现在我的 FB SDK 需要 200 秒,所以它一定可以工作。

在 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/

相关文章:

javascript - $scope 不在函数内工作

javascript - AppleScript 在刷新时将浏览器带到前台

Javascript 动态数组和对象

node.js - Socket.io 中的连接不稳定

javascript - 如何在单击事件期间淡入元素?

node.js - NodeJS如何传递参数?

javascript - 在 JavaScript 中从 Geocoding Google-Api 添加地址到表

javascript - 使用相同的处理程序停止委托(delegate)内的事件

node.js - 如何增加批量数组字段 mongodb 上的计数器

javascript - 如何为我的 React 应用程序解决 "Element type is invalid"?