如何只显示第一次访客特定的工具提示?

时间:2013-01-24 21:02:17

标签: javascript html .htaccess cookies

我想只给第一次用户“浏览”我的网站。我想用JavaScript做。我的意思是,如果用户从未见过我的网站并且这是他/她的第一次访问,他们将获得有关如何使用该网站的教程。如果他们再次访问或重新加载页面,他们不应该看到工具提示。这可以用JavaScript Cookies完成吗?我发现了一个PHP代码,但我现在想要避免使用PHP。

<?php
// Top of the page, before sending out ANY output to the page.
    $user_is_first_timer = !isset( $_COOKIE["FirstTimer"] );

// Set the cookie so that the message doesn't show again
    setcookie( "FirstTimer", 1, strtotime( '+1 year' ) );
?>




<H1>hi!</h1><br>


<!-- Put this anywhere on your page. -->
<?php if( $user_is_first_timer ): ?>
    Hello there! you're a first time user!.
<?php endif; ?>

如果用JS无法完成,可以用.htaccess完成吗?我也发现了这个:

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^(www\.)?(https?://)?(?!example\.com) [NC]
Rewriterule ^(.*)$ http://example.com/welcome.html [r=307,NC]

1 个答案:

答案 0 :(得分:5)

当然,虽然我更喜欢使用localStorage来存储“之前有用户访问”的信息,因为如果你设置了一个cookie,那么该cookie将随每个cookie一起发送到服务器。单。请求。制作。至。您的。服务器

所以,试试这个:

if( !window.localStorage) {
    // no localStorage (old browser) - either fall back to cookie method,
    // or just do nothing and skip the whole tour thing - if the user
    // can't be bothered to upgrade, why should you bother to accomodate them?
}
else {
    if( !window.localStorage.isReturningVisitor) {
        // do all the tour stuff here
        window.localStorage.isReturningVisitor = true;
    }
}