首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >每个用户仅显示一次弹出窗口

每个用户仅显示一次弹出窗口
EN

Stack Overflow用户
提问于 2014-06-13 00:27:35
回答 4查看 120.8K关注 0票数 32

这个问题已经有了答案,但我仍然不确定它是如何工作的。

我在footer.php中使用了以下超文本标记语言:

代码语言:javascript
复制
<div id="popup">
    <div>
        <div id="popup-close">X</div>
            <h2>Content Goes Here</h2>
    </div>
</div>

和以下Javascript:

代码语言:javascript
复制
$j(document).ready(function() {
    $j("#popup").delay(2000).fadeIn();
    $j('#popup-close').click(function(e) // You are clicking the close button
    {
    $j('#popup').fadeOut(); // Now the pop up is hiden.
    });
    $j('#popup').click(function(e) 
    {
    $j('#popup').fadeOut(); 
    });
});

一切运行良好,但我只想显示弹出每个用户一次(也许使用cookie的事情,所有的论坛帖子),但我不知道如何确切地合并到JS上面。

我知道我将不得不在我的页脚中加载cookie JS,如下所示:

代码语言:javascript
复制
<script type="text/javascript" src="scripts/jquery.cookies.2.2.0.min.js"></script> 

但这就是我所理解的,有人能告诉我添加了cookie的JS/jQuery到底应该是什么样子吗?

谢谢

詹姆斯

EN

回答 4

Stack Overflow用户

发布于 2014-06-13 00:40:44

此示例使用jquery-cookie

检查cookie是否存在且未过期-如果其中任何一个失败,则显示弹出窗口并设置cookie (半伪码):

代码语言:javascript
复制
if($.cookie('popup') != 'seen'){
    $.cookie('popup', 'seen', { expires: 365, path: '/' }); // Set it to last a year, for example.
    $j("#popup").delay(2000).fadeIn();
    $j('#popup-close').click(function(e) // You are clicking the close button
        {
        $j('#popup').fadeOut(); // Now the pop up is hiden.
    });
    $j('#popup').click(function(e) 
        {
        $j('#popup').fadeOut(); 
    });
};
票数 4
EN

Stack Overflow用户

发布于 2014-06-13 00:36:29

你可以使用php来解决这个问题。您只需在加载第一个页面时回显弹出窗口的代码。

另一种方式...就是设置一个cookie,它基本上是一个位于浏览器中的文件,包含某种类型的数据。在第一个页面加载时,您将创建一个cookie。然后,在此之后的每一页,您都会检查是否设置了cookie。如果已设置,请不要显示弹出窗口。但是,如果未设置,请设置cookie并显示弹出窗口。

伪代码:

代码语言:javascript
复制
if(cookie_is_not_set) {
    show_pop_up;
    set_cookie;
}
票数 1
EN

Stack Overflow用户

发布于 2016-03-21 03:56:26

为使用Ionic的人提供一个快速的答案。我只需要显示一次工具提示,所以我使用$localStorage来实现这一点。这是用来播放曲目的,所以当他们按下play时,它会显示一次工具提示。

代码语言:javascript
复制
$scope.storage = $localStorage; //connects an object to $localstorage

$scope.storage.hasSeenPopup = "false";  // they haven't seen it


$scope.showPopup = function() {  // popup to tell people to turn sound on

    $scope.data = {}
    // An elaborate, custom popup
    var myPopup = $ionicPopup.show({
        template: '<p class="popuptext">Turn Sound On!</p>',
        cssClass: 'popup'

    });        
    $timeout(function() {
        myPopup.close(); //close the popup after 3 seconds for some reason
    }, 2000);
    $scope.storage.hasSeenPopup = "true"; // they've now seen it

};

$scope.playStream = function(show) {
    PlayerService.play(show);

    $scope.audioObject = audioObject; // this allow for styling the play/pause icons

    if ($scope.storage.hasSeenPopup === "false"){ //only show if they haven't seen it.
        $scope.showPopup();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24189428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档