身体ids,显示网址?

时间:2012-02-28 09:41:41

标签: jquery

我有4页导航。

基本上我有4页。

P1 - 显示所有4个页面,但您只能单击下一页,第2页

P2 - 同时显示所有4个页面,但您可以返回之前查看的页面,即第1页,只进入下一页第3页

P3 - 也显示所有4个页面,但您可以返回之前查看的页面,即第2页和第2页。 1并且只进入下一页第4页

P4显示所有4页,让您回到以前查看的页面,即第1,2,3页和第1页。 4

我的问题是 - 说你已经浏览了每个页面到最后一页P4,你点击页面P1来仔细检查一下,我希望P1知道你已完成所有步骤,现在现在允许你点击页面到第3页或第4页等。

你可以使用body id吗?

2 个答案:

答案 0 :(得分:1)

正如我在评论中提到的,您可以将您访问过的最后一页保存在cookie中,在这里我将为您提供一个代码示例。

首先你应该注意我正在使用jquery(javascript库)来编写我的脚本

我考虑你的场景,所以我们将有三个功能来构建它

  1. 在您的网页的所有DOM准备就绪后,我们将检查我们正在浏览的页面以设置页面索引并禁用其旁边的所有页面

    $(document).ready(function () {
        debugger;
        var pagename = document.location.href.toLowerCase();
        if (pagename.indexOf('page1.aspx') > -1) {
            getLastPageIndex(1);
        }
        else if (pagename.indexOf('page2.aspx') > -1) {
            getLastPageIndex(2);
        }
        else if (pagename.indexOf('page3.aspx') > -1) {
            getLastPageIndex(3);
        }
        else if (pagename.indexOf('page4.aspx') > -1) {
            getLastPageIndex(4);
        }
    });
    

    您可以详细了解$(document).ready() here

  2. getLastPageIndex()函数:我们将当前页面索引传递给它,并将此索引与我们访问并保存在cookie中的最后一页索引进行比较。 我在一小时后设置了cookie的到期日期

    function getLastPageIndex(pageindex) {
        var pageCookies = document.cookie.split(';');
        var pageindexfromCookie = null;
        var cookieName;
        var cookieValue;
        var cookie;
        for (i = 0; i < pageCookies.length; i++) {
            cookie = pageCookies[i].split('=');
            cookieName = cookie[0];
            cookieValue = cookie[1];
            if (cookieName == 'PageIndex') {
                pageindexfromCookie = cookieValue;
                break;
            }
        }
        var expirationdate = new Date();
        expirationdate.setTime(expirationdate.getTime() + (60 * 60 * 1000));
    
        if (pageindexfromCookie == null || pageindexfromCookie < pageindex) { // set new cookie
            document.cookie = 'PageIndex=' + pageindex + '; expires=' + expirationdate.toGMTString();
            DeactivateTabs(pageindex);
        }
        else {
            DeactivateTabs(pageindexfromCookie);
        }
    }
    
  3. DeactivateTabs()功能:此功能禁用指向尚未访问的下一页的链接

    function DeactivateTabs(pageindex) {
        var CountOfTabs = 10;
        while (++pageindex <= 10) {
            $('a[id=tab' + pageindex + ']').attr('href', 'javascript:;');
        }
    }
    
  4. 您可以从here

    下载完整代码

    More About Cookies in javascript

答案 1 :(得分:0)

使用cookies或localStorage。

此解决方案使用localStorage,仅与HTML5浏览器兼容:

<强> P4.html

if(typeof(Storage)!=="undefined") {
    localStorage.seenAll = true;
}

P1.html,P2.html,P3.html,P4.html

if(typeof(Storage)!=="undefined") {
    if ( localStorage.seenAll ) {
        // allow to click all places,
        alert("You can click all links now");
    }
} 

为所有浏览器制作解决方案使用Cookie(JavaScript - Cookies


回复你评论的另一个解决方案:

P1.html,P2.html,P3.html,P4.html (不是testet)

if(typeof(Storage)!=="undefined") {
    var pages = ["P1", "P2", "P3", "P4"],
        currentPage = "the page you are on" // "P1" or "P2" or "P3" or "P4"

    localStorage.pagesSeen = localStorage.pagesSeen || {};
    localStorage.pagesSeen[currentPage] = true;

    for ( var i = 0, len = pages.length; i < len; i++ ) {
        if ( localStorage.pagesSeen[pages[i]] ) {
            // Current page is seen,
            // Make link to the page:
            alert("Page: " + pages[i] + " is already seen.");
        }
    } 
}

您唯一需要改变的是变量currentPage。此变量将在第1页上为"P1",在第2页上为"P2"等。