javascript - 使用 intro.js 进行多次游览

标签 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');
    });
}
}

最佳答案

当然,您可以在同一页面中有多个游览,但您应该检查页面的 URL 并制定条件并防止再次调用第一个游览。

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

关于javascript - 使用 intro.js 进行多次游览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18156672/

相关文章:

cookies - 如何仅在第一次访问网站时开始 intro.js 之旅

javascript - HTML onchange 显示/隐藏表格

javascript - 如何使用 JavaScript 知道一个国家是否正在使用夏令时?

javascript - Jquery .attr() 将值设置为未定义,为什么?

javascript - 工具提示出现在 intro.js 移动 View 中的元素上方

javascript - Intro.js 无法在两个步骤之间触发函数(请检查我的代码)

javascript - 如何单击以克隆与这些类匹配的所有 ID

javascript - 有没有办法在从同一子列表中选择下拉值时禁用子列表字段。 SuiteScript 2.0 getSublistField 方法不起作用

javascript - 使用 intro.js 在步骤中触发函数

javascript - 使用 Intro.js 时如何针对特定步骤调整工具提示的样式