我正在制作弹出窗口,提醒用户阅读一些文档。它还将包括一个按钮,以确认他们是否已阅读相关文件。 到目前为止,这是我的代码:
<form runat="server">
<div id="cookie_box">
We have compiled a summary of the Technical Mailings sent throughout 2015. To view the document,<a href="/cookies"> click here</a>
<br /><br />
I confirm that I have read the above document
<asp:Button runat="server" ID="confirmButton" Text="confirm" />
</div>
</form>
和Javascript:
$(document).ready(function() {
if (getCookie('show_cookie_message') != 'no') {
$('#cookie_box').show();
}
$('.cookie_box_close').click(function() {
$('#cookie_box').animate({
opacity: 0
}, "slow");
setCookie('show_cookie_message', 'no');
return false;
});
});
function setCookie(cookie_name, value) {
document.cookie = cookie_name + "=" + escape(value);
}
function getCookie(cookie_name) {
if (document.cookie.length > 0) {
cookie_start = document.cookie.indexOf(cookie_name + "=");
if (cookie_start != -1) {
cookie_start = cookie_start + cookie_name.length + 1;
cookie_end = document.cookie.indexOf(";", cookie_start);
if (cookie_end == -1) {
cookie_end = document.cookie.length;
}
return unescape(document.cookie.substring(cookie_start, cookie_end));
}
}
return "";
}
现在我想实现一个功能,当用户点击confirmButton
时,弹出窗口将不会再显示(甚至在新会话中),但我不知道如何做这个。有什么建议吗?
答案 0 :(得分:0)
如果您想使用cookie处理此问题而不依赖于服务器状态。那么你一定要看看这个库,以便用jquery访问cookie。
https://github.com/carhartl/jquery-cookie
创建会话cookie:
$.cookie('name', 'value');
从那时起7天内创建过期的Cookie:
$.cookie('name', 'value', { expires: 7 });
创建过期的Cookie,在整个网站上有效:
$.cookie('name', 'value', { expires: 7, path: '/' });
阅读Cookie:
$.cookie('name'); // => "value"
$.cookie('nothing'); // => undefined
你应该基本查询cookie中是否设置了某个值:
if($.cookie('confirm')=== 'yes')...
//显示或隐藏您的方框
注意:一件重要的事情。如果仅执行客户端站点脚本,则不需要服务器端控件。 (RUNAT =&#34;服务器&#34)。如果是这样,您需要将其连接起来以处理客户端站点事件。现在它回发到服务器。
答案 1 :(得分:0)
尝试更改此代码
$('.cookie_box_close').click(function()
{
$('#cookie_box').animate({opacity:0 }, "slow");
setCookie('show_cookie_message','no');
return false;
});
到
$('.cookie_box_close').click(function()
{
$('#cookie_box').animate({opacity:0 }, "slow", function(){
var value = confirm( "Click 'OK' if you don't want pop-up again");
if ( value )
{
setCookie('show_cookie_message','no');
}
});
return false;
});
答案 2 :(得分:0)
您需要将您的点击处理程序附加到您的asp:Button。
尝试设置<asp:Button CssClass="cookie_box_close" ID="confirmButton" Text="confirm" />