【问题标题】:JQuery Mobile 1.4.5 does not seem to invoke javascript on ipadJQuery Mobile 1.4.5 似乎没有在 ipad 上调用 javascript
【发布时间】:2019-07-14 21:08:27
【问题描述】:

使用 JQuery mobile 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 上进行测试时,我得到的只是一个灰色圆圈,其中有一个“旋转的彗星”在圆圈中旋转,页面甚至从未呈现(是的,我尝试重新启动 iPad,清除浏览器历史记录/数据等) .

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

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

任何建议都会有所帮助。

提前致谢。

【问题讨论】:

  • 必须是 jQuery 吗?有什么理由不使用 Vanilla?
  • 是的 - 该网站是使用 JQuery Mobile 开发的 - 宁愿修复也不愿完全重写! (不知道什么是“Vanilla”——或者你的意思是 vanilla javascript?)

标签: javascript ios jquery-mobile


【解决方案1】:

首先,您错过了一些重要信息,例如“所有其他浏览器”是在您的台式机上运行,​​还是我们在谈论其他移动设备?这非常重要。

如您所见,表示 jQuery Mobile 和 jQuery 已加载的微调器。

如果它们在您的台式计算机上成功运行,那么您可以检查以下内容:

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

【讨论】:

    【解决方案2】:

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

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

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

    当改为:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-29
      • 2023-03-07
      • 2017-03-08
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多