我正在使用Code Igniter开发网站。我想在用户第一次访问我的网站时显示弹出窗口。如果他再次提神,那就不会再来了。现在我正在检查会话变量,如果它不存在,我正在显示该弹出窗口。之后,我强迫该用户单击按钮关闭弹出窗口。然后我发送一个请求到服务器来设置该会话变量。因此,如果该用户刷新页面,该弹出窗口将不再出现。
有没有最好的方法来完成此操作?
答案 0 :(得分:2)
我不认为你所描述的是一个好主意。 从用户体验的角度来看 - 在页面打开时弹出窗口并不是很酷的体验。
答案 1 :(得分:1)
很少有网站使用这种方法,并且通常是有原因的。什么是弹出窗口?这通常是用户做出的动作的结果,或者至少是这个想法的结果。如果您按下该按钮并出现弹出窗口,那很好。但是如果你第一次访问这个新网站并且在决定该网站之前就会弹出你的脸,那对你来说并不是很好。
如果你坚持这样做,我宁愿建议通过javascript cookie运行它。对于每个唯一用户,它不要求您的服务器具有额外性能,并且不包含敏感数据。在最坏的情况下,他们操纵cookie并再次弹出。
就个人而言,我更愿意像Youtube那样做;我进入该网站并获得一个明确标记的框,其中包含我可以主动选择点击的信息以获取更多信息:
(此帐户由castlin.se处理。阅读更多)
这种方法可以有效地为用户提供信息,从而能够获得更多信息,同时又不会影响用户通常想做的事情。
有没有最好的方法来完成这个动作?
没有。他们的理由和优势有几种方式。我们可以为您提供解决方案,但我们不能说“这是您必须使用的”。其中potentiel sql注射除外;他们是“必须”处理:))
答案 2 :(得分:0)
我在自己的(codeigniter)网站上使用cookies。
我使用了jquery modal dialog插件。和JQUERY COOKIE
我做了类似的事情:
$(function() {
if ($.cookie('showDialog') == undefined || $.cookie('showDialog') == null || $.cookie('showDialog') != 'false') {
$("#dialog").dialog({
width: 450,
modal: "true",
hide: "fade",
show: "fade",
closeOnEscape: false,
draggable: true,
resizable: false,
title: 'Welcome to my site',
close: function(event, ui){
location.reload(true);
},
open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }
}).dialog("open");
$(".ui-widget-overlay").css({background: "#000", opacity: 0.8});
$.cookie('showDialog', 'false', { expires: 365 }); // set the cookie, with expiry after 1 day
}
我的对话框代码:
<div id="dialog" class="hidden" title="Welcome to my website">
// Content for dialog
// Content for dialog
</div>
现在,当您点击“关闭”按钮或按钮所说的任何内容时。将设置cookie,如果设置了cookie,则不会显示对话框。我添加了1年的到期时间。因此,如果人们不删除他们的cookie,今年就不会显示该对话框。