Enabling Slaask to work with Turbolinks

Enabling Slaask to work with Turbolinks

Written by Grace Williamson
Last update: Tuesday, Oct 17, 2017

When using Slaask with Turbolinks, the widget disappears each time the user moves from one page to another. You can bypass this issue by adding the following code in a <script> tag:  

document.addEventListener('slaask.ready', function() {
  var slaaskDOM = [];
  for (var i = 0 ; i < document.body.children.length ; i++) {
    if (/^slaask-/.test(document.body.children[i].id))
      slaaskDOM.push(document.body.children[i]);
  }
  function reAppend() {
    for (var id in slaaskDOM) {
      document.body.appendChild(slaaskDOM[id]);
    }
  }
  document.addEventListener("turbolinks:load", reAppend);
  document.addEventListener("page:load", reAppend);
});

Javascript API

12 articles in this category.
Written by Grace Williamson.