Bootstrap tour необходимо очистить кеш, чтобы снова работать
Я пытаюсь использовать начальный тур в моем веб-приложении. Все работало нормально в первые 5 минут, и я видел шаги всплывающего окна, первый раз и единственный раз. Тогда всплывающие окна просто исчезли позже. Я перепробовал много способов, даже перезапустил компьютер, и оказалось, что каждый раз, когда я очищаю кеш браузера, он работает один раз. Затем мне нужно очистить кеш еще раз.
Код выглядит так:
helpButton.click(function() {
if (window.steps === undefined)
return;
alert("element: " + window.steps[0].element + ", title: " + window.steps[0].title + ", content: " + window.steps[0].content + ", val: " + $(window.steps[0].element).val());
var tour = new Tour({
steps: window.steps
});
tour.init();
tour.start();
alert("finished.");
});
И шаги выглядят так:
<script type="text/javascript">
var steps = [
{ element: "#choose-team", title: "快速编辑", content: "可以在这里直接编辑标题,自动保存", position: "n" },
{ element: ".hidden-editor:first", title: "快速编辑2", content: "可以在这里直接编辑标题,自动保存2", position: "n" }
];
- Все оповещения () в порядке, а данные по шагам в порядке (поэтому он может запускаться хотя бы один раз).
- Все официальные примеры в порядке на их сайте.
- И IE, и Chrome имеют одинаковую проблему на моем ПК.
- Tour js и css не повреждены (загружается с Bootstraptour.com).
Любая идея? Благодарю.
4 ответа
Я просто нашел другой способ обойти проблему, если хранение является обязательным. Использование restart () вместо start () также может решить проблему. И вместо restart () есть начало (true), но оно напрямую переходит к последнему шагу.
Похоже, этот тур, по умолчанию, предназначен для работы как разовый тур. Например, когда что-то на вашем сайте обновляется, тур должен автоматически запускаться один раз, чтобы показать обновление, и больше никогда не будет беспокоить пользователя.
Чтобы сделать это повторяемым туром, отключите хранилище с помощью "storage: false" в опции или используйте restart () вместо start ().
Эта проблема связана с конфигурацией библиотек, поскольку по умолчанию данные хранятся в интерфейсе хранилища DOM.
Опция: storage
По умолчанию: window.localStorage
Описание:
Система хранения, которую вы хотите использовать. Это могут быть объекты window.localStorage, window.sessionStorage или ваш собственный объект. Вы можете установить эту опцию как false, чтобы отключить постоянство хранилища (обзор начинается с каждой загрузки страницы).
FIX
var tour = new Tour({
steps: window.steps,
storage: false
});
Если вы хотите работать постоянно. Создайте экземпляр как это
var tour = new Tour({
storage: false,
steps: [],
});
Затем вызовите эти функции нажатием одной кнопки.
$(document).ready(function(){
$('#tour').click(function(){
tour.init();
tour.restart();
});
});
Если (как и я) вы хотите добавить в справку или приложение профиля кнопку для повторного включения тура, вы можете просто удалить хранилище
function reset_tour() {
window.localStorage.removeItem('tour_current_step');
window.localStorage.removeItem('tour_end');
}
Это перезапустит тур, когда пользователь перезагрузит страницу всего 1 раз.