JQuery 移动版 1.4.5 似乎没有在 ipad 上调用 javascript

JQuery Mobile 1.4.5 does not seem to invoke javascript on ipad

使用 JQuery 移动版 1.4.5 (https://jquerymobile.com/)

具有讽刺意味的是,在桌面浏览器上一切正常,但在 iPad ...

上测试时我似乎无法正常工作

我的精简页面 (HTML) 包含以下内容:

<div data-role="content">
 <script src="test.js"></script>    
 <script>
  $( document ).on( 'pagecreate', function( event ) { do_something(); });
 </script>
</div>

文件 "test.js",包含以下代码:

function do_something() {

   alert('here in do_something()');

}

在 iPad 上进行测试时,我得到的只是一个灰色圆圈,其中有一个 "spinning comet" 在圆圈中旋转,页面甚至从未呈现(是的,我尝试重新启动 iPad,清除浏览器 history/data,等等)。

在所有其他浏览器上,我收到警报。

最终,我试图将 google 地图与 javascript 一起加载到页面中 我需要操纵各种 DOM 元素以及操纵地图——我可以并且正在所有其他浏览器上工作——只是在 iPad 上测试时似乎无法让任何东西工作(我不知道如何通过 iPad Safari 查看源或控制台消息,这使调试成为一场噩梦)。

任何建议都会有所帮助。

提前致谢。

首先,您错过了一些重要信息,例如,"all other browsers" 运行 在您的台式机上还是我们在谈论其他移动设备?这非常重要。

如您所见,这意味着 jQuery Mobile 和 jQuery 已加载。

如果它们在您的桌面计算机上成功运行,那么您可以检查这些:

  • 确保您的内容 none 是 运行 在本地主机上或来自本地主机。这在台式计算机上运行良好,但如果您尝试在任何其他设备上测试它,它将失败。
  • 确保您没有在 jQM 应用程序中使用绝对路径,这在任何远程设备上也会失败。我认为可能是类似的情况,因为 jQM 无法显示第一页
  • 您将需要使用远程调试功能。当您使用 iPad 时,我再次假设您拥有 Mac。按照本教程进行操作:https://appletoolbox.com/2014/05/use-web-inspector-debug-mobile-safari/ 因为这是唯一可以发现错误的万无一失的方法。不幸的是,如果您使用的是 Windows 机器,那么您将需要使用 Chrome 和 Android 设备。
  • 也有可能,您的某些 *.js 内容是从本地主机或您的 iPad 无法使用的其他来源加载的。这也可能是您上面所说的情况,警报未在 iPad 上触发。这意味着一些主要的 JavaScript 已经发生,从而阻止了其他 JavaScript 内容的加载。
  • 在这种情况下,您可以使用另一种万无一失的方法来帮助我。 Trim 将您的代码降至最低限度,即使这意味着您需要删除大部分 HTML 内容和 JavaScript。对其进行测试,如果有效,则开始包括已删除的内容。首先包括远程 JavaScript 内容,CSS 和类似内容。然后,如果它仍然有效,请开始包括实际的 HTML 和代码。您迟早会发现有问题的代码、丢失的内容或未加载到您的 iPad.
  • 中的内容

感谢所有提供见解的人...

原来这是一个包含 try/catch 块的外部 javascript 文件:

try {
   // code
}
catch {
   // code
}

当更改为:

try {
   // code
}
catch(err) {
   // code
}

...修改后,所有测试都通过了!!