如何使用JavaScript检查页面是否是第一次加载

11

我想检查页面是否是第一次加载,如果是,则显示筛选器。如果我将showFiltermenu()放在pageLoad函数中,则每次加载页面都会显示它,但我只想在第一次加载时显示它。我尝试使用Page.IsPostBack,但那不会显示筛选器。

    <script type="text/javascript">
        function showFiltermenu() {
            $("#filtermenuDrop").toggle('fold', {}, 500);
        }
        function closefiltermenu() {
            $("#filtermenuDrop").toggle('fold', {}, 500);
        }

function pageLoad() {
        $("input[rel^='datepicker']").datepicker({
            dateFormat: 'dd/mm/yy',
            changeMonth: true,
            yearRange: "c-50:c+50",
            changeYear: true,
            showOn: "both",
            firstDay: 1,
            buttonImage: "../images/icons/buttons/basic1-049-small.png"
        });
        <% if (Page.IsPostBack)
           { %>
                showFiltermenu();
        <% } %>

        ShadowboxInit();

    }

你可以使用cookies。 - Ibu
你正在请求 cookies。 - connexo
你可以设置一个cookie或使用本地存储。 - Santiago Hernández
请看这个链接 ;) https://dev59.com/dWkx5IYBdhLWcg3wCP6Y - Allan Raquin
3个回答

19

使用localStorage,您可以保存像这样的值:

var firstTime = localStorage.getItem("first_time");
if(!firstTime) {
    // first time loaded!
    localStorage.setItem("first_time","1");
}

无需jQuery、插件,只需纯净、美观且快速的HTML5 API


现在这个是否可行?如果我们使用这个功能,会面临哪些挑战? - kiran
1
如果同一用户使用不同设备登录,则该方法将无法起作用。 - Islam Murtazaev
如果同一用户在不同的浏览器中打开网站,这种方法将不起作用。因为本地存储是针对浏览器的。 - lokprakash

3
感谢大家的回答,但是我在问题中犯了一个简单的错误。我忘记在if语句中加上 ! 。现在这个代码可以检查页面是否首次加载。
<% if (!Page.IsPostBack)
           { %>
                showFiltermenu();
        <% } %>

你如何在PHP中实现这个? - shavindip

1

尝试使用cookie。 对于这种事情,cookie非常有用。 首先让我们看看浏览器是否知道cookie:

if(document.cookie)
{document.cookie="Name=Value";
}

else{
alert("perhaps you must change browser.Something in this page can't  load.")
}

请记住,cookie始终返回字符串。如果您在控制台上记录下来,它将显示为字符串。

 document.cookie

设置cookie很简单。您可以设置很多cookie。但是,如果您删除了cookie,浏览器会认为您是第一次访问该网站。 要检查是否设置了cookie,您可以执行以下操作:

 if(document.cookie.search="value")
 {//code that you want to execute if the page is visited yet}

这会使筛选器每次加载页面时都显示。我只想在页面第一次加载时显示。 - user123456789

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接