首先,请记住,我自己从未使用过 Javascript(只使用了一些 100% 运行的脚本),对于 Objet 编程也是如此(12 年前学习了 Pascal 编程)。
现在,我必须创建一个关于德语和法语的小网上商店。
我制作了设置 cookie 的功能,以保持所选语言。
但现在,我至少想要一件事:如果没有任何名为“Language”的 cookie,请创建一个并将其设置为法语。
我怎样才能做到这一点?
我的功能:
function setCookie(sName, sValue) {
var expDate = new Date();
expDate.setTime(expDate.getTime() + (365 * 24 * 3600 * 1000)); // ici 1 an
document.cookie = sName + "=" + escape(sValue) + ";expires=" + expDate.toGMTString() + ";path=/";
}
和页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="./css/style.css" rel="stylesheet" media="all" type="text/css" />
<script type="text/Javascript" src="./javascript/cookie.js"></script>
<title></title>
<?php
require_once './includes/google_analytics.php';
?>
</head>
<body onload="setCookie('language','fr');">
<p>
Language : <a href="<?php echo $_SERVER['PHP_SELF']?>" onclick="setCookie('language','fr')">fr</a> /
<a href="<?php echo $_SERVER['PHP_SELF']?>" onclick="setCookie('language','de')">de</a>
</p>
<?php
require_once './includes/menu.php';
?>
<div id="contener">
<!-- --------------------------------------------- -->
<?php
require_once './includes/header.php';
?>
<!-- --------------------------------------------- -->
<!-- --------------------------------------------- -->
<?php
require_once './includes/footer.php';
?>
</div>
</body>
</html>
我想用“onload”进行测试。
最佳答案
这是检查 cookie 是否已设置的一种方法:
if (document.cookie.indexOf("language=") < 0)
setCookie("language", "fr");
请注意,如果任何 cookie 的名称以 language
结尾,这也不会设置 cookie。 .
编辑:
这是一个正确的函数来检查具有特定名称的 cookie 是否已经存在。
function cookieIsset(name)
{
var cookies = document.cookie.split(";");
for (var i in cookies)
{
if (cookies[i].indexOf(name + "=") == 0)
return true;
}
return false;
}
你可以用它来做
if (!cookieIsset("language"))
setCookie("language", "fr");
<小时/>
如何onload
:
在你的<head>
区域添加以下内容:
<script type="text/javascript">
document.onload = function () {
// code ...
};
</script>
<小时/>
PHP解决方案:
因为OP有php标签原来在那里。
if (!isset($_COOKIE['language']))
setCookie('language', 'fr');
关于javascript - 如果尚未设置,则使用 JavaScript 设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18335226/