【发布时间】:2021-06-23 23:51:38
【问题描述】:
我在 Chrome 和 Edge 开发控制台中测试了以下 JavaScript 很多次,它说所有函数都是未定义的。但是,它并没有告诉我这是什么原因。这是代码(我认为错误可能在toggleMenu中,因为我刚刚添加了这个)。网站是 tactiletimes.org。我也尝试将 const 放在 list 之前,但这只会引发意外的识别器错误
list = "<ul><li><a href="about">About Us</a></li><li><a href="subscribe">Subscribe for free</a></li><li><a href="issues.html">Issue Archive</a></li><li><a href="contribute">Contribute to Issue 4</a></li><li><a href="contact">Contact us</a></li><li><a href="#menu">View full menu</a></li></ul>";
function clearCookies(){
deleteAllCookies();
document.getElementById("cookieButton").innerHTML = "Successfully cleared data"+document.cookie
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0){ return c.substring(nameEQ.length,c.length)};
}
return null;
}
function deleteAllCookies(){
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
}
function changeBodyColor(color){
document.cookie = "bgColor="+color;
document.getElementById("footer").style.color = "yellow";
changeLinkColor("yellow")
document.body.style.backgroundColor = color;
if (color == "white"){
document.body.style.color = "black";
changeLinkColor("blue");
}
else if (color == "black"){
document.body.style.color = "white";
}
else if (color == "yellow"){
document.body.style.color = "black";
changeLinkColor("blue");
document.getElementById("footer").style.color = "red";
}
else if (color == "purple"){
document.body.style.color = "white";
}
else if (color == "blue"){
document.body.style.color = "white";
}
else if (color == "green"){
document.body.style.color = "black";
changeLinkColor("blue");
document.getElementById("footer").style.color = "red";
}
else if (color == "orange"){
changeLinkColor("blue");
}
}
function changeLinkColor(color){
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++){
links[i].style.color = color;
}
}
function restoreBgColor(){
if (!readCookie("bgColor") == null){
changeBodyColor(readCookie(bgColor));
}
}
function toggleMenu(){
if (document.getElementById("topmenu").innerHTML != ""){
document.getElementById("topmenu").innerHTML = "";
}
else{
document.getElementById("topmenu").innerHTML = list;
}
}
</script> ```
【问题讨论】:
-
我不知道为什么
-
list 因错误使用双码而破坏了代码。先修复它,然后让我知道你是否会遇到同样的错误。
-
谢谢,看来问题已经解决了。我只是想知道为什么在这种情况下不允许使用双引号,因为另一个关于双引号和单引号的问题使它看起来就像它们在相同的情况下使用(比如在 Python 中)
标签: javascript html