У меня проблема с текущим событием рекомендованной загрузки турболыков по умолчанию:
document.addEventListener('turbolinks:load', function() {
…
});
Случается, что это не срабатывает в Safari при загрузке страницы. Поэтому я добавил Turbolinks.dispatch("turbolinks:load");
к application.js
.
Казалось, все работает нормально. Но в Chrome он сработал автоматически, поэтому в итоге произошло двойное срабатывание turbolinks:load
события.
Моим первым решением было запускать turbolinks:load
только в браузерах, отличных от Chrome.
Но почему-то даже в Chrome некоторые представления не запускаются turbolinks:load
автоматически. Так что мне пришлось запускать его и на определенных представлениях.
Последнее решение, которое я нашел, заключалось в следующем:
$(document).on('ready turbolinks:load', function() {
…
});
Кажется, это решает все проблемы, потому что он срабатывает при загрузке или перезагрузке первой страницы, а также при нажатии на ссылки. Он также запускается в Chrome и Safari.
Есть ли лучший способ справиться с этим?
Документы говорят, что первая версия верна, но, похоже, это не так.
Я что-то упустил?
(примечание: использование jQuery не является для меня недостатком, и я знаю, что смогу реализовать это с помощью пары document.addEventListener
)
async
на<script>
? - person Dom Christie   schedule 02.05.2018