JQuery Mobile 1.4.5似乎没有在ipad上调用javascript

问题描述 投票:0回答:2

使用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查看源或控制台消息,这使调试成为一场噩梦)。

任何的意见都将会有帮助。

提前致谢。

javascript ios jquery-mobile
2个回答
1
投票

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

正如你所见,spinner意味着jQuery Mobile和jQuery被加载。

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

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

1
投票

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

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

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

更改为:

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

...改变完成后,所有测试都通过了!

© www.soinside.com 2019 - 2024. All rights reserved.