想用HMLT5+CSS3+jQuery Mobile写一个小应用。一直是放在火狐浏览器和opera模拟器模拟的手机浏览器里测试,也利用cordova生成了APP在安卓系统上跑了一下,看了看效果,一切都正常。
最近想完善应用的数据储存方面的功能,决定用IndexedDB来储存数据,冲着Chrome上可以查看各种数据的情况,便开始用Chrome测试。但是奇怪的事发生了,Chrome怎么都打不开网页,提示我如下错误,并且一直在转圈圈。
提示:
Uncaught SecurityError: Failed to execute 'replaceState' on 'History': A history state object with URL 'file:///C:/Users/%E5%90%9B%E6%80%A1/Desktop/my_own_HTML/Demo/index.html' cannot be created in a document with origin 'null'.
起初随便搜了下,也没见着什么解决方法,就搁置了,但是其他浏览器实在不方便学习IndexedDB,还是去找了解决的方法。
在这个国外的网站看到了一些解决方法,并且照做后我的问题也解决了,听说是因为Chrome的安全机制给害的。国外论坛。
简而言之就是在jquery.mobile-1.4.5.min.js(jqmb的js代码)或者引用的相关SDN前面加上以下的代码,一切都迎刃而解了。
<script>
$(document).bind('mobileinit',function(){
$.mobile.changePage.defaults.changeHash = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
});
</script>
望共勉。
本文介绍了一个在使用Chrome浏览器测试包含IndexedDB的应用时遇到的问题及解决方案。由于Chrome的安全限制,作者遇到了无法打开页面的错误。通过修改jQuery Mobile的设置禁用了页面历史记录功能,成功解决了这一问题。

332

被折叠的 条评论
为什么被折叠?



