Как писать многострочные скрипты в Pug и Facebook JS SDK - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь включить многострочную функцию JavaScript внутри тега script в моем шаблоне мопса макета. Он должен быть запущен в теге script, то есть он должен быть выполнен таким образом и не может быть передан в шаблон как значение, поскольку это логика на стороне клиента в приложении узла.

Это эквивалентноВанильный 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, я не могу получить правильное форматирование, и оно не работает. Мопс документы имеют только очень простые примеры, такие как:

 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, который я пытаюсь использовать здесь .

Примечание : я предлагаю это не дубликат этого из-за немного более сложного характера кода JS, вставляемого в тег сценария.

1 Ответ

1 голос
/ 30 октября 2019

Я думаю, что решил это, используя свою самую первую попытку решения 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")

Примечание. Я хочу отдать должное этому решению за переполнение стека публикация . Я не видел этого script. в документации по мопсу, поэтому я ценю @ Felipe-sabino за указание на это.

...