javascript - 我的网站可以在台式机上运行,但不能在移动设备上运行。涉及很多 JavaScript。任何想法如何诊断这个?
问题描述
https://plutownium.github.io/ASCII-Pathfinding-Visualizer/?
这是我的 ASCII Pathfinding Visualizer。我构建了它,它在桌面上运行良好,但在移动设备上......
- “Visualize Dijkstra's”按钮不起作用:您可以放置一个开始节点和一个目标节点,单击该按钮,使可视化器无法启动。
- “生成递归除法迷宫”按钮不起作用:可以生成随机迷宫,也可以生成二叉树迷宫,但递归除法迷宫按钮不起作用。
让事情变得更加混乱:据我所知,它适用于我桌面上的所有 3 个 Chrome、Brave 和 Firefox。但是当我的手机加载它时,Safari 浏览器和 Chrome 浏览器都不起作用。
我不知道如何调试它,因为我无法访问移动设备上的开发人员工具(因此也无法访问 console.log 输出)。
此外,我不知道为什么某些东西在桌面上可以正常工作,但在移动设备上却不行。因此,虽然我怀疑这是某种交叉兼容性问题(一定是对的?),但我无法开始理解代码的哪一部分会导致问题。
我会显示一些代码,但我真的不确定要显示代码的哪一部分。三个文件之间大约有一千行 JavaScript。当然,两个 Maze Generation 按钮可以工作,因此缩小了很多,但是......我仍然卡住了。就像,我可以找到很多关于“JavaScript 在移动设备上不起作用”的 StackOverflow 链接,但我不确定这些链接对我有什么帮助,因为我什至无法访问有关我的问题原因的详细信息——我不知道哪些代码行已损坏,我无法访问该信息(移动设备上没有开发工具)。
我该怎么办?
编辑:我仍然不明白代码如何在桌面上运行,但不能在移动设备上运行。
解决方案
在 iPhone 上单击“可视化 Dijkstra”按钮时,控制台错误显示为:
ReferenceError: Can't find variable: Path
dijkstras — dijkstras.js:147
(anonymous function) — script.js:593
dijkstras.js 中的代码片段:
if (iteration == 0) { // while iteration==0, STARTING_NODE===CurrentNode, so it's unique: There is no path to get there.
const firstEntry = [startValueX, startValueY]
const initPath = new Path(0, [], firstEntry, false) // Can't find variable: Path
potentialPaths.push(initPath)
} else { // block summary: generate a new Path to add to potentialPaths
更新
桌面 Safari 上也会出现相同的 ReferenceError。
更新 2
加载后,Safari 在文件classes.js
第 18 行报告语法错误:
SyntaxError: Unexpected token '='. Expected an opening '(' before a method's parameter list.
(anonymous function) — classes.js:18
文件 classes.js:
class Cell {
offset = 2; // *** SyntaxError ***
推荐阅读
- sql - 当该字段完全等于“A”时,like '%A%' 语句和 in('A') 语句之间有什么区别吗?
- c# - 如何捕获 EF 异常
- python - 上下文敏感张量和词向量之间的区别
- python - Nginx:如何将 Python 脚本的结果发送到客户端?
- vue.js - Babel @babel/preset-es2015 找不到模块
- glsl - 如何从 GLSL 后处理着色器输出多个帧?
- r - 在 R 中安装软件包时出现问题
- javascript - 在 ngAfterContentInit 中更新内容查询
- xamarin - 拖放 Xamarin Forms(仅限 iOS)对象
- ios-darkmode - IOS 13 深色模式强调色