Использование плагинов с рельсами турболинками - PullRequest
0 голосов
/ 06 июня 2018

Helpscout предоставляет плагин javascript для добавления маяка / виджета в конец сайта, как показано ниже:

  <script>
  !function(e,o,n){
    window.HSCW=o,window.HS=n,n.beacon=n.beacon||{};var t=n.beacon;t.userConfig={},t.readyQueue=[],t.config=function(e){this.userConfig=e},t.ready=function(e){this.readyQueue.push(e)},o.config={
    docs:{enabled:!0,baseUrl:"https://xyz.helpscoutdocs.com/"},
   contact:{enabled:!0,formId:"xyz"}};var r=e.getElementsByTagName("script")[0],c=e.createElement("script");c.type="text/javascript",c.async=!0,c.src="https://djtflbt20bdde.cloudfront.net/",r.parentNode.insertBefore(c,r)
  }(document,window.HSCW||{},window.HS||{});
  HS.beacon.config({topArticles: true,poweredBy: false, topics: [{val: "help", label: "Help"}]});
  HS.beacon.ready(function() {
  HS.beacon.prefill({subject: "Support"});
});
  </script>

В приложении rails с turbolinks это вызывает ошибку JS: "Uncaught TypeError: Не удается прочитатьсвойство 'createElement' из null "при каждой загрузке страницы после загрузки первой страницы.

Как перенастроить такой скрипт для работы с tubolinks?

1 Ответ

0 голосов
/ 06 июня 2018

Вы можете вызвать javascript на page:load или turbolinks:load

$(document).on('ready page:load', function() {
  // js code
});

или

$(document).on('ready turbolinks:load', function() {
  // js code
});
...