我正在使用 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
任何关于我能做些什么才能让它发挥作用的想法?
答案 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 });
希望这有助于某人。