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
}
...修改后,所有测试都通过了!!
使用 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
}
...修改后,所有测试都通过了!!