使用intro.js进行多次巡视

时间:2013-08-09 22:35:29

标签: javascript intro.js

我们希望有一个常规的多页面浏览,也可以为网络应用程序提供特定的页面导览。多页面一个正在运行,页面特定的一个也触发,但调用两个巡视数据对象。有没有办法在同一页面上进行多次巡视?

function initTours(){

// Start intro tour
document.getElementById('startIntro').onclick = function() {
    introJs().setOption('doneLabel', 'Next page').start('.intro-farm').oncomplete(function() {
        window.location.href = 'nav_season.php?multipage=true';
    });
};

var tourStep = $('.content .intro-farm').attr('data-step');
var nextLink = $('#nextTourLink').attr('href');
if (RegExp('multipage', 'gi').test(window.location.search)) {
    introJs().setOption('doneLabel', 'Next page').goToStep(tourStep).start('.intro-farm').oncomplete(function() {
        window.location.href = nextLink+'?multipage=true';
    });
} 

//Page specific
if ($('.page-tour').length > 0){
    //Page specific tour
    $('.pageHelp').on('click',function() {
        introJs().start('.page-tour');
    });
} else {
    $('.pageHelp').on('click',function(){
        $('#messageModal .row').html("<p>We don't have help tips for this page, but if you are stuck, please don't hesitate to <a href='#'>contact us</a>.</p>")
        $('#messageModal').foundation('reveal', 'open');
    });
}
}

3 个答案:

答案 0 :(得分:0)

当然,您可以在同一页面中进行多次巡视,但是您应该检查页面的网址并创建条件并阻止再次呼叫第一次巡视。

例如,假设您的网页为boo.php,那么对于第一次游览,您应该检查window.location.pathname是否等于boo.php,然后向用户显示第一个游览,重定向到下一页(例如boo.php?anotherPage=true)后,再次检查页面的网址并显示下一个他的旅程。

答案 1 :(得分:0)

您可能希望使用Programmatic way定义步骤,以便根据需要定义步骤。如果我理解你的话,你的巡演都会抓住所有的步骤,我是对的吗?

答案 2 :(得分:0)

请查看以下代码。它工作正常。

if (RegExp('multipage', 'gi').test(window.location.search)) {
    introJs().setOption('doneLabel',
         'Your next Page &rarr; (Name of Page)').start().oncomplete(function() {
        window.location.href = 'nextpage.html?multipage=true';
    });
}