location.hash在Blackberry 6.0上一次又一次地重新加载HTML

时间:2011-04-05 11:11:42

标签: javascript blackberry cordova jqtouch

我使用JQTouch和JQuery的基于phonegap的应用程序在iPhone,Android,Chrome上运行良好。但它在Blackberry 6.0上无法正常工作。我能够找到问题,问题在于jqtouch.js以下是达到该行的方法:

jqtouch.js > animatePages-function > callback-private function

在他们定义的私人回调函数中

location.hash = "#"+ id;

每当我的应用程序到达此行时,它会重新呈现整个HTML文件,因此应用程序将重新启动。我无法找到任何解决方案。有没有其他方法可以做到这一点?我试图放window.event.preventDefault()但它会抛出错误。

先谢谢

2 个答案:

答案 0 :(得分:1)

我在JQTouch中遇到类似的问题,我在设置位置时使用非真实哈希解决了这个问题。如果您的哈希值是实际ID,则页面跳转到该元素。只需在哈希的末尾添加“page”或其他内容,这样它就不会指向元素id:

location.hash = "#" + id + "page";

答案 1 :(得分:0)

我找到了问题的解决方案,我用{替换"location.hash" history.pushState( {}, document.title, ("#"+id) );
无论jqtouch尝试将新值分配给location.hash,它在Blackberry 6.0上运行良好