我有代码检查浏览器,并且每次刷新页面时它都在运行。是否可以在每次访问时只运行一次,因此如果我刷新或通过链接转到该页面,则忽略代码。感谢
<script type="text/javascript">
if($.browser.msie && $.browser.version=="8.0" || $.browser.msie && $.browser.version=="7.0")
alert("Please upgrade your browser to at least version 8.0 in order to use all the features of this site.\n\nThank you.");
</script>
由darin提供的更新代码:
<script type="text/javascript">
var date = new Date(); date.setTime(date.getTime() + (30 * 60 * 1000)); $.cookie("explorer", "foo",{ expires: date });
var cookie = $.cookie('explorer');
if (cookie == null) {
// the cookie is not present => you may do the checks
if ($.browser.msie && $.browser.version == '8.0') {
// set the cookie so that the next time the user visits this page
// he doesn't get the alert message
$.cookie('explorer', 'true');
alert("Please upgrade your browser to at least version 8.0 in order to use all the features of this site.\n\nThank you.");
}
}
</script>
虽然
但警报仍未解雇答案 0 :(得分:3)
你必须设置一个cookie,记住你看到的最新版本是什么,只有当你没有看到cookie或者版本发生了变化但仍然不是你想要的时候才会唠叨用户。
旁注:您的支票,如引用,将使用IE8唠叨他们至少需要使用IE8的人。看起来很奇怪。如果你真的想要浏览器嗅探,也许:
if ($.browser.msie && parseFloat($.browser.version) < 8) {
// Do whatever you're going to do with them having IE < 8.0
}
偏离主题:这种唠叨的弹出窗口已经过时了。相反,如果您的网站的某些部分在没有某些浏览器功能的情况下无法运行,请使用功能检测(而不是浏览器嗅探)来检查它们并仅禁用相关部分(可能带有消息) ,当用户试图使用您网站的那部分时,说明为什么他们不能)。您可以找到许多有用的功能测试here和here。另请参阅jQuery.support
。
答案 1 :(得分:1)
您可以使用Cookie。因此,您可以检查是否存在某些自定义cookie,如果不存在则显示该消息并发出cookie,以便下次不显示该消息。这是一个很好的plugin for jquery,可以简化读写cookie:
<script type="text/javascript">
var cookie = $.cookie('some_cookie_name');
if (cookie == null) {
// the cookie is not present => you may do the checks
if ($.browser.msie && $.browser.version == '7.0') {
// set the cookie so that the next time the user visits this page
// he doesn't get the alert message
$.cookie('some_cookie_name', 'true');
alert("Please upgrade your browser to at least version 8.0 in order to use all the features of this site.\n\nThank you.");
}
}
</script>