想用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>
望共勉。