javascript - 如何添加一个 'don' t show this message again' checkbox with localstorage?

标签 javascript jquery twitter-bootstrap-3

我有一个引导警报。

<div class="checkbox">
    <label>
        <input type="checkbox"> Don't show this again!
    </label>
</div>

如果复选框被点击并且警报被解除

<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>

我不想再显示警报。我想知道这是否可以用 http://www.w3schools.com/js/js_cookies.asp

$('#checkbox').click(function() {
    if ($('#checkbox').attr('checked')) {
        document.cookie="alert=dismiss";
    }
})

然后如果有 cookie 隐藏消息 $.hide 方法?

更新了解决方案

var oldBrowser = $.browser.msie && parseInt($.browser.versionNumber) < 9;

//message is dismissed via storage
var dissmissed = amplify.store("DoNotShowMessageAgain");

// if oldbrowers and not dismissed
if (oldBrowser && !dissmissed) {
     $( "#browserAlert" ).show();
}


// Don't show message again
$('#browserAlert .close').click(function(){
if ($('.checkbox input').is(':checked')) {
     amplify.store( "DoNotShowMessageAgain", true );
 }
}) 

最佳答案

我的建议是为此使用 HTML5 的本地存储。它的真正目的是一种在浏览器的 session 之间持久保存数据而不会过期的现代方法:

function localStorageAvailable() {
    if (typeof(Storage) !== "undefined") {
        return true;
    }
    else {
        return false;
    }
}

$('#checkbox').click(function(){
    if ($('#checkbox').attr('checked')) {
        if (localStorageAvailable())
            localStorage.DoNotShowMessageAgain = "true";
    }
}) 

然后,当页面准备就绪时,您可能想要检查并恢复过去保存的体验中的功能:

if (localStorageAvailable()) {
    if (localStorage.DoNotShowMessageAgain && localStorage.DoNotShowMessageAgain === "true") {
        // user doesn't want to see the message again, so handle accordingly
    }
};

有关 HTML5 本地存储的更多信息,请查看 my blog post关于这个话题。

关于javascript - 如何添加一个 'don' t show this message again' checkbox with localstorage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31842679/

相关文章:

jquery - 从具有固定第一列的 knockout View 模型创建动态表

javascript - jQuery:获取一组选定元素中的一个

twitter-bootstrap - 将焦点从固定页眉或固定页脚下移出

html - 为什么 6 个盒子中有两个盒子对齐不正确?

javascript - 将边界传递给 google places API

javascript - 如何使用 Javascript 将 JSON 响应输出附加到 html 表中

javascript - 将 2 个 jQuery 函数合并为 1 个并保持点击顺序

javascript - 防止 Adob​​e Edge preload.js 文件加载 jquery

css - 在 Bootstrap 中自定义表格

javascript - 手机间隙 : Showing audio controlls and meta informations of my audio stream in the lockscreen and the dropdown status bar