2015-02-12 16 views
5

Tôi đang cố sử dụng chương trình khởi động trong ứng dụng web của mình. Tất cả mọi thứ đã làm việc tốt trong 5 phút đầu tiên và tôi thấy các bước bật lên, lần đầu tiên và thời gian duy nhất. Sau đó, các cửa sổ bật lên chỉ biến mất sau đó. Tôi đã thử nhiều phương pháp thậm chí khởi động lại máy tính, và nó bật ra rằng mỗi khi tôi xóa bộ nhớ cache của trình duyệt, nó hoạt động một lần. Sau đó, tôi cần phải xóa bộ nhớ cache một lần nữa.Chuyến tham quan Bootstrap cần xóa bộ nhớ cache để hoạt động trở lại

Việc xem xét mã như thế này:

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."); 
}); 

Và bước như sau:

<script type="text/javascript"> 
var steps = [ 
    { element: "#choose-team", title: "快速编辑", content: "可以在这里直接编辑标题,自动保存", position: "n" }, 
    { element: ".hidden-editor:first", title: "快速编辑2", content: "可以在这里直接编辑标题,自动保存2", position: "n" } 
]; 

  1. Tất cả các alert() là tốt, và dữ liệu trong các bước đều đúng (đó là lý do tại sao nó có thể chạy ít nhất một lần).
  2. Tất cả các ví dụ chính thức đều tốt trên trang web của họ.
  3. Cả IE và Chrome đều có cùng sự cố trên PC của tôi.
  4. Tham quan js và css là nguyên vẹn (tải xuống từ Bootstraptour.com).

Bất kỳ ý tưởng nào? cảm ơn.

Trả lời

5

I Just tìm thấy một cách khác để đi bộ xung quanh vấn đề này, nếu lưu trữ là điều bắt buộc. Sử dụng restart() thay vì start() cũng có thể giải quyết vấn đề. Và có một sự khởi đầu (đúng) thay vì khởi động lại(), nhưng nó chuyển sang bước cuối cùng trực tiếp.

Có vẻ như chuyến tham quan này là mặc định, được thiết kế để hoạt động như một chuyến tham quan một lần. Ví dụ: khi nội dung nào đó trên trang web của bạn được cập nhật, chuyến tham quan sẽ tự động chạy một lần để hiển thị cập nhật và sẽ không bao giờ làm phiền người dùng nữa.

Để đặt chuyến tham quan có thể lặp lại, hãy tắt bộ nhớ theo "lưu trữ: sai" trong tùy chọn hoặc sử dụng restart() thay vì start().

+0

nhưng nó vẫn bị hỏng khi bạn đang trên bước 2/3 ví dụ và bạn làm mới trang :( – varto

7

Sự cố này liên quan đến cấu hình thư viện khi nó lưu trữ dữ liệu vào Giao diện lưu trữ DOM theo mặc định.

DOCS

Tùy chọn: storage

Mặc định: window.localStorage

Mô tả:

Hệ thống lưu trữ mà bạn muốn sử dụng. Có thể là các đối tượng window.localStorage, window.sessionStorage hoặc đối tượng của riêng bạn. Bạn có thể đặt tùy chọn này là sai để tắt tính lưu giữ của bộ nhớ (chuyến tham quan bắt đầu từ đầu mỗi khi trang được tải).

FIX

var tour = new Tour({ 
    steps: window.steps, 
    storage: false 
}); 
+0

Cảm ơn! Nó hoạt động! Nghĩ rằng đó là một cái gì đó về lưu trữ, nhưng không biết "sai" có thể được sử dụng để vô hiệu hóa nó. – cheny

2

Nếu bạn muốn chạy liên tục.Tạo ví dụ như thế này

var tour = new Tour({ 
    storage: false, 
    steps: [], 
}); 

Sau đó, gọi chức năng này trên một số lần nhấp nút.

$(document).ready(function(){ 
     $('#tour').click(function(){ 
      tour.init(); 
      tour.restart(); 
     }); 
    }); 
0

Nếu (như tôi) mà bạn muốn thêm một nút trong Trợ giúp hoặc hồ sơ ứng dụng của bạn để kích hoạt lại tour, bạn chỉ có thể xóa các lưu trữ

function reset_tour() {  
     window.localStorage.removeItem('tour_current_step'); 
     window.localStorage.removeItem('tour_end'); 
} 

này sẽ khởi động lại các tour du lịch khi người dùng tải lại trang chỉ trong 1 lần.

Các vấn đề liên quan