我经常环顾四周,似乎找不到任何对我来说足够简单的事情......
我已经设置了一个网页,可以检测当前正在运行的浏览器,如果它不是Firefox 4.0,它会显示一个隐藏的div,它会发出警告,指出该页面最适合在Firefox 4.0或更高版本中查看。在该div中是一个隐藏div onclick的按钮。
我正在寻找一种方法来记住在会话期间点击了此按钮,这样当用户点击我的“主页”时,他们每次都不会收到相同的消息。
当前代码:
<head>
<script src="js/browsercheck.js"></script>
<script type="text/javascript">
// external script "browsercheck.js" checks
// which browser/version is being used
// check browser and display message if != Firefox 4.0 or >
function checkBrowser() {
var browser = BrowserDetect.browser;
var version = BrowserDetect.version;
if (browser == "Firefox") {
if (version >= 4) {
// do nothing
}
} else {
document.getElementById("coverall").style.visibility="visible";
document.getElementById("browser").innerHTML = browser + " " + version;
}
}
// remove overlay if user commands
function removeCoverall() {
document.getElementById("coverall").style.visibility="hidden";
}
</script>
</head>
<body>
<div id="coverall" style="visibility:hidden;">
<p>I see you're using <span id="browser"></span>. Please use Firefox.</p>
<button type="button" onclick="removeCoverall()">I understand</button>
</div>
</body>
答案 0 :(得分:1)
使用jQuery和cookie plugin,你可以这样做:
function removeCoverall() { $.cookie("user_clicked_ok", "true"); document.getElementById("coverall").style.visibility="hidden"; } $(window).ready(function() { if ($.cookie("user_clicked_ok")=="true") {removeCoverall();} });
答案 1 :(得分:0)
在removeCoverall
函数中,您可以set a cookie表示用户已关闭div,并在checkBrowser
函数中验证Cookie是否存在,然后再显示div。
答案 2 :(得分:0)
You seem to have the right idea, you need cookies! YUM!
<强> JS 强>
function removeCoverall() {
var date = new Date();
date.setTime(date.getTime()+(7*24*60*60*1000));// expires in one week
document.cookie = 'skipNotify=1;expires='+date.toGMTString()+'; path=/';
document.getElementById("coverall").style.visibility="hidden";
}
现在在javascript中检索cookie可能很困难,但你可以使用PHP!
<强> PHP 强>
function checkBrowser() {
<?php if(isset($_COOKIE['skipNotify']))echo'return;';?>
var browser = BrowserDetect.browser;
var version = BrowserDetect.version;
if (browser == "Firefox") {
if (version >= 4) {
// do nothing
}
} else {
document.getElementById("coverall").style.visibility="visible";
document.getElementById("browser").innerHTML = browser + " " + version;
}
}
如果用户有cookie,上面的代码会注入一个return语句,因此调用该函数将不会执行任何操作。
正如其他帖子中所述,我强烈建议您使用jQuery来满足您的所有JavaScript需求。它非常受欢迎,稳定且有用!我只给出了答案,因为它没有使用任何第三方解决方案。