javascript - 为什么 javascript 找不到我的函数?

标签 javascript html function

我用HTML5做了一个益智游戏,刚才我想给游戏添加本地存储,但是失败了。

我写了三个函数。问题是:如果我将所有函数放在一个 .js 文件中,则在调试时(通过 chrome)没有定义任何函数。如果我将这三个函数拆分到另一个文件并向 .html 文件添加标记,我会被告知这些未定义。

那么如何解决这个问题呢?

抱歉我的英语不好,希望你明白我的意思。

这是我的函数和 html 文件。

<html>
<head>
<meta charset="utf-8">
<title>Puzzle</title>
<script src="puzzle-localstorage.js"></script>
<script src="puzzle.js"></script></script>
</head>

<body onLoad="Init()" onkeydown="keydown()">
<p align="center">
    <canvas id="board" height="600" width="600" style="border-style:double">
        Your Browser doesn't support canvas
    </canvas>
</p>
<p id="moves">Moves: <span id="movecount">0</span>
<input type="number" id="boardEdgeNum" value="3"/>
<input type="file" id="imgSrc"/>

</p>

function supportsLocalStorage() {
try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch (e) {
return false;
    }
}



function saveGameState() {
if (!supportsLocalStorage()) { return false; }
localStorage["puzzle.boardEdge"] = boardEdge;
localStorage["puzzle.blockPixel"] = blockPixel;
for (var i = 0; i < boardEdge; i++) {
    for(var j=0;j<boardEdge;j++){
        localStorage["puzzle.gameStatus."+i+j] = gameStatus[i][j];
    }
}
localStorage["puzzle.image.src"]=imgElement.src;
localStorage["puzzle.move.count"] = moveCount.textContent;
if(gameInProgress)localStorage["puzzle.game.in.progress"] = "true";
else localStorage["puzzle.game.in.progress"]="false";
localStorage["puzzle.empty.block.X"] = emptyBlock.X;
localStorage["puzzle.empty.block.Y"] = emptyBlock.Y;
return true;
}

function resumeGame() {
if (!supportsLocalStorage()) {return false;}
if(!localStorage["puzzle.game.in.progress"]=="true"){return false;}
boardEdge=parseInt(localStorage["puzzle.boardEdge"]);
blockPixel=parseInt(localStorage["puzzle.blockPixel"]);
imgElement=new Image();
imgElement.src=localStorage["puzzle.image.src"];
gameStatus=new Array(boardEdge);
gameCompStatus=new Array(boardEdge);
for (var i = 0; i < boardEdge; i++) {
    gameStatus[i]=new Array(boardEdge);
    gameCompStatus[i]=new Array(boardEdge);
    for(var j=0;j<boardEdge;j++){
        gameStatus[i][j]=parseInt(localStorage["puzzle.gameStatus."+i+j]);
        var x=(gameStatus[i][j]-1)%boardEdge;
        var y=(gameStatus[i][j]-1-j)/boardEdge;
        drawingContext.drawImage(imgElement,x*blockPixel,y*blockPixel,blockPixel,blockPixel
                                            j*blockPixel,i*blockPixel,blockPixel,blockPixel);
        drawLines();
    }
}
gameStatus[boardEdge-1][boardEdge-1]=0;
gameCompStatus[boardEdge-1][boardEdge-1]=0;

moveCount.textContent=localStorage["puzzle.move.count"];
gameInProgress=(localStorage["puzzle.game.in.progress"] =="true");
emptyBlock=new Cell(parseInt(localStorage["puzzle.empty.block.X"]),parseInt(localStorage["puzzle.empty.block.Y"]));
return true;
}

最佳答案

<script src="puzzle.js"></script></script>

这是什么?是打错了吗?或者在您的真实代码中也是如此?尝试删除它们。 Javascript 应该看到你的功能。 Initkeydown 函数的声明在哪里? javascript 能看到它们吗?

关于javascript - 为什么 javascript 找不到我的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6807962/

相关文章:

javascript - 无法在 'fetch' 无效模式上执行 'Window'

javascript - 在 JavaScript 中传递对象和函数名称

javascript - 删除按钮不在表格上工作

javascript - 使用 for 循环创建多个函数

c# - 从JSON读取,数据不显示

javascript - Chrome 运行时 OnMessage 监听器事件未触发

javascript - 浏览器何时/为何执行代码

php - Mysql SET类型以及sql查询中用php进行多数据处理

ios - 无法在swift中使用委托(delegate)调用另一个类方法

Python 在不干扰脚本的情况下休眠?