У меня проблема с текущим значением по умолчанию для турболинков. Рекомендуемое событие загрузки :
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
)