在单击ice phone sandwhich中的android phonegap app中的锚标记时加载页面时出错

时间:2012-01-13 09:47:07

标签: android jquery-mobile cordova android-4.0-ice-cream-sandwich

我正在使用 phonegap 1.3 jquery mobile 1.0 开发 android phonegap 应用程序我的应用程序在4.0之前的所有Android版本中都能正常运行。 0
但是在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

任何关于我能做些什么才能让它发挥作用的想法?

4 个答案:

答案 0 :(得分:4)

由于您使用的是jQuery,我建议您使用jQuery来连接您的活动。据说使用e.preventDefault();并且e.stopImmediatePropagation();应阻止jQuery移动设备执行默认操作。

$("#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只会停止默认操作。

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

此错误即将发生,因为在处理

时会损坏ics中的webkit
?param=abc

使用网址。所以,如果你有一个像

这样的网址
domain.com?p1=a
你点击了,然后就会出现这样的错误。现在最好的解决方法是在浏览器中测试你的webapp,看看你何时何地将params添加到url并删除它们。

您可以将这些参数保存在localstorage中并在需要时进行检索。

答案 3 :(得分:1)

有时jquery本身会在ajax请求中添加这些url params。激活缓存时就是这种情况。 您可以使用以下方法轻松禁用整个项目的此功能:

$.ajaxSetup({ cache: true });

希望这有助于某人。