【发布时间】:2012-05-15 17:41:22
【问题描述】:
我对 Javascript 还很陌生,我想要做的是在单击链接后立即设置 cookie。当我从链接返回上一页时,我希望页面自动刷新并通过颜色通知用户以显示他们刚刚单击的链接。我用这个例子来指导我http://webdesign.about.com/od/cookies/a/aa083198.htm。但我还是没听懂。
下面的代码是我所拥有的。问题是,只要我点击链接,萤火虫就会出现错误“getLink not defined”。同样通过 Firefox 上的 Web 开发人员,即使我从 Html 调用它,我的 cookie 似乎实际上并没有被设置。我还展示了我的 Html 中调用该函数的最重要的部分。
我在 setCookie 中的 videoId 是一个 php 变量,它在我的代码中的其他地方定义。如果有人能指出我正确的方向,我将不胜感激。谢谢!
<head>
<script language="text/javascript">
var cookie_name = "watched";
function setCookie(cookie_name,cookie_value)
{
if (document.cookie!="") {
index = document.cookie.indexOf(cookie_name);
} else {
index = -1;
}
if (index == -1) {
var finish = 7200;
var cookie_value = videoId + "; expires=" + finish;
document.cookie=cookie_name + "=" + cookie_value;
}
}
function getLink(cookie_value) {
if (document.cookie) {
index = document.cookie.indexOf(cookie_value);
if (index != -1) {
colorLinks;
}
else{
//alert("No color");
}
}
return colorLinks;
}
function colorLinks()
{
$('#' + videoId).css('background-color: pink');
}
</script>
</head>
<body onLoad=window.refresh>
<div id="page">
echo '<a href="' . $link . '" onclick="setCookie(); return true;">' . $this->Links
【问题讨论】:
-
错误信息指向哪一行?你没有在你发布的代码中的任何地方调用
getLink()。 -
我在 setCookie 中的 videoId 是一个 php 变量,它在我的代码中的其他地方定义。 - 您是否也在 JavaScript 中设置了该变量? JavaScript 不会自动识别 PHP 变量。
-
你在哪里调用了getLink函数?
-
坦率地说,我认为在回到 cookie 之前,您应该先了解 JavaScript 基础知识。您当前的代码似乎有很多问题,调试整个事情需要付出很多努力。
-
问题是您似乎不了解javascript和php之间交互的基础知识,并且您正在尝试一些对于初学者来说有点复杂的东西。你应该阅读一些文档或教程,然后回到这段代码。
标签: php javascript cookies setcookie