我正在使用Joomla 3.3.1构建网站,并且希望在用户首次访问该网站时弹出一个警告框(而不是在随后的页面点击或刷新页面时弹出)。警报框应显示“访问此页面即表示您同意其服务条款”,其中“服务条款”是指向特定页面的链接。用户可以单击“确定”。我对JavaScript非常陌生,但是我尝试了以下代码:
<script>
function TOS(){
alert("By visiting this page, you agree to its Terms of Service.");
}
TOS();
</script>
毫不奇怪,这使警报在我单击页面上的任何内容时都弹出。我也尝试在onload中调用该函数,但是得到了类似的结果。
您可以提供的任何指导或参考将不胜感激!
最佳答案
就像是:
var createCookie = function(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
}
else {
expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}
function getCookie(c_name) {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) {
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
function TOS(){
var cookieName = 'hasVisitedBefore';
var cookie = getCookie(cookieName);
if (!cookie) {
alert("By visiting this page, you agree to its Terms of Service.");
createCookie(cookieName,true,3650);
}
}
TOS();
我从以下问题中使用了createCookie和getCookie函数:How do I create and read a value from cookie?
这是一个工作的小提琴:http://jsfiddle.net/kvLrt/1/