如何在 Pug 和 Facebook JS SDK 中编写多行脚本
How to write multi-line scripts in Pug and Facebook JS SDK
我正在尝试在我的布局哈巴狗模板中的脚本标记内包含一个多行 JavaScript 函数。它需要在脚本标记中 运行,即它必须以这种方式完成并且不能作为值传递到模板中,因为它是节点应用程序中的客户端逻辑。
这相当于原版 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>
因为我使用的是哈巴狗而不是普通的 HTML 我无法正确设置格式并且它不起作用。哈巴狗 docs 只有非常基本的例子,例如:
script
include script.js
和
script(src='/javascripts/jquery.js')
script(src='/javascripts/app.js')
这是我当前的哈巴狗文件,也是我最近一次让它工作的尝试。
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 函数。它需要在脚本标记中 运行,即它必须以这种方式完成并且不能作为值传递到模板中,因为它是节点应用程序中的客户端逻辑。
这相当于原版 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>
因为我使用的是哈巴狗而不是普通的 HTML 我无法正确设置格式并且它不起作用。哈巴狗 docs 只有非常基本的例子,例如:
script
include script.js
和
script(src='/javascripts/jquery.js')
script(src='/javascripts/app.js')
这是我当前的哈巴狗文件,也是我最近一次让它工作的尝试。
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 指点我。