在冰淇淋三明治的 Android PhoneGap 应用程序中单击锚标记时加载页面时出错

发布于 2024-12-26 08:07:10 字数 583 浏览 0 评论 0原文

我正在使用 phonegap 1.3jquery mobile 1.0 开发 android Phonegap 应用程序 我的应用程序在 4.0.0 之前的所有 Android 版本中运行得很好
但在 4.0.0 及更高版本中,我面临一个问题。我有一个锚点,当用户单击时,会将其带到另一个“页面”。

<div class="ui-input-share  ui-btn-corner-all ui-body-c" id="mk_home">
    <a href="javascript:void(0);" class="ui-input-text"  data-role="none"  >Whats up?</a>
</div>

在具有 android 4.0.3 的模拟器中,当我单击此按钮时,我收到一条错误消息 “加载页面时出错” 当我检查 logcat 中的日志时,我看到一条错误消息,提示

Unknown chromium error: -6

为我该怎么做才能让它发挥作用?

i am developing an android phonegap app using phonegap 1.3 and jquery mobile 1.0 My app works perfectly fine in all android versions before 4.0.0

But in 4.0.0 and above im facing an issue. I have an anchor which when users click, takes the to another 'page'.

<div class="ui-input-share  ui-btn-corner-all ui-body-c" id="mk_home">
    <a href="javascript:void(0);" class="ui-input-text"  data-role="none"  >Whats up?</a>
</div>

In the emulator having android 4.0.3, when i click on this i get an error saying "Error loading page" When i check the logs in logcat, i see an error saying

Unknown chromium error: -6

any idea as to what can i do to get it working?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

鹿! 2025-01-02 08:07:10

由于您使用的是 jQuery,我建议您也使用 jQuery 来连接您的事件。话虽如此,使用e.preventDefault();和 e.stopImmediatePropagation(); 应该阻止 jQuery mobile 对 .

$("#verify").click(function (e) {
    e.stopImmediatePropagation();
    e.preventDefault();
    //Do important stuff....
});

更新

使用现有标记的更好方法是简单地将 rel="external" 添加到您的标记中,并且您的 onclick 应该表现正确。

<p>
  <a href="index.html" data-role="button" data-icon="arrow-r" data-iconpos="right" data-theme="a" onclick="doSomething(); return false" rel="external">VERIFY</a>
</p>

这将起作用,因为 jQuery Mobile 会将链接视为普通标签,并且返回 false 将简单地停止默认操作。

Since you are using jQuery I would recommend to use jQuery to wire up your events as well. With that being said using e.preventDefault(); and e.stopImmediatePropagation(); should stop jQuery mobile from performing the default action on the .

$("#verify").click(function (e) {
    e.stopImmediatePropagation();
    e.preventDefault();
    //Do important stuff....
});

Update

The better way to use your existing markup would be to simply add rel="external" to your And your onclick should behave correctly.

<p>
  <a href="index.html" data-role="button" data-icon="arrow-r" data-iconpos="right" data-theme="a" onclick="doSomething(); return false" rel="external">VERIFY</a>
</p>

This will work since jQuery Mobile will treat the link as a normal tag and return false will simply stop the default action.

老旧海报 2025-01-02 08:07:10

在 jQuery Mobile 中,当您想使用 ,您最好在 中使用 rel="external" ,以便正确跳转到目标页面。
如果你想使用JavaScript,最好不要在
中使用,因为href是哈希分配而不是JavaScript代码属性。

jQuery Mobile 不支持锚点。如果需要使用anchor,就必须要做一些权衡。您可以参考此链接,jQuery Mobile 锚点链接

In jQuery Mobile, when you want to use <a href=...> </a>, you'd better use rel="external" in <a> , in order to jump to target page correctly.
If you want to use JavaScript, you'd better not to use in <a href='...'>, because href is hash allocation but not JavaScript code attribute.

jQuery Mobile do not support anchor. If you need to use anchor, you have to do some trade-off. You can reference this link, jQuery Mobile Anchor Linking

梦巷 2025-01-02 08:07:10

出现此错误是因为 ics 中的 webkit 在处理

?param=abc

url 时出现问题。因此,如果您有一个类似于您点击的网址

domain.com?p1=a

,那么您会收到这样的错误。目前最好的解决方法是在浏览器中测试您的 Web 应用程序,看看您何时何地向 url 添加参数并删除这些参数。

您可以将这些参数保存在本地存储中并在需要时检索。

This error was coming because webkit in ics is broken in handling

?param=abc

with urls. So if u have a url like

domain.com?p1=a

which u hit, then you would get such an error. The best fix for now would be to test your webapp in browser and see when and where you add params to the url and remove those.

You can in place save those params in localstorage and retrieve when needed.

半世蒼涼 2025-01-02 08:07:10

有时 jquery 本身会在 ajax 请求中添加这些 url 参数。当您激活缓存时就会出现这种情况。
您可以使用以下命令轻松地为整个项目禁用此功能:

$.ajaxSetup({ cache: true });

希望这对某人有帮助。

Sometimes the jquery itself adds those url params in ajax requests. This is the case when you activated caching.
You could easily disable this feature for the whole project using:

$.ajaxSetup({ cache: true });

Hope this helps somebody.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文