首页 > 解决方案 > 我的网站可以在台式机上运行,​​但不能在移动设备上运行。涉及很多 JavaScript。任何想法如何诊断这个?

问题描述

https://plutownium.github.io/ASCII-Pathfinding-Visualizer/

这是我的 ASCII Pathfinding Visualizer。我构建了它,它在桌面上运行良好,但在移动设备上......

让事情变得更加混乱:据我所知,它适用于我桌面上的所有 3 个 Chrome、Brave 和 Firefox。但是当我的手机加载它时,Safari 浏览器和 Chrome 浏览器都不起作用。

我不知道如何调试它,因为我无法访问移动设备上的开发人员工具(因此也无法访问 console.log 输出)。

此外,我不知道为什么某些东西在桌面上可以正常工作,但在移动设备上却不行。因此,虽然我怀疑这是某种交叉兼容性问题(一定是对的?),但我无法开始理解代码的哪一部分会导致问题。

我会显示一些代码,但我真的不确定要显示代码的哪一部分。三个文件之间大约有一千行 JavaScript。当然,两个 Maze Generation 按钮可以工作,因此缩小了很多,但是......我仍然卡住了。就像,我可以找到很多关于“JavaScript 在移动设备上不起作用”的 StackOverflow 链接,但我不确定这些链接对我有什么帮助,因为我什至无法访问有关我的问题原因的详细信息——我不知道哪些代码行已损坏,我无法访问该信息(移动设备上没有开发工具)。

我该怎么办?

编辑:我仍然不明白代码如何在桌面上运行,但不能在移动设备上运行。

标签: javascript

解决方案


在 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 ***

推荐阅读