我开发了一个带有内置脚本的 .htm 文档,供 javascript 运行程序。在 google chrome 中,该程序运行良好,但我收到了一个 beta 测试投诉,称它在 firefox 14.01 或 opera 上不起作用。在使用 firefox 14.01 进行测试时,我可以确认它不起作用(我假设歌剧是相同的)。我不能坚持让观众升级他们的浏览器,因为这应该是广泛兼容的。
对问题进行了一些跟踪,我安装了 Firebug,它在第一次单击 Javascript 按钮生成坐标时,它起作用了(清楚地显示该函数已定义并存在),但第二次,Firebug 抱怨说:
"ReferenceError: GenerateCoord is not defined".
如果它只在生成(加密)坐标(因此调用应该是“未定义”的 GenerateCoord)之后才这样做,这不会那么具有讽刺意味。
如果查看代码,可以清楚地看到函数 GenerateCoord 在调用之前已经明确定义。我会说firefox有一个'onclick'问题,但它提出了一个问题,为什么它在我第一次点击它时起作用(通过'onclick'调用GenerateCoord)而不是第二次?
重新加载文件允许按钮第一次工作,并且仅在第一次工作。我很困惑firefox如何一次调用一个函数,然后它说下一次是未定义的。我在这里错过了什么吗?
Javascript 和 HTML 代码可以在这里查看:
-
我该如何解决这个问题,是否有比重写代码以避免 onclick 更简单的解决方案(这似乎在某些情况下有效,但在其他情况下无效)?