我是html5和js的新手,如果这是一个非常简单的问题,请原谅我的无知。但是有人可以帮助我为我的案例找到解决方案:
我已经从我的 js 代码创建了一些静态 html5 页面和一个离线数据库,可以跨所有 html5 页面访问。现在我正在尝试从一页更新数据库,并希望在所有 html5 页面中更新数据库反射。
提前致谢。
我是html5和js的新手,如果这是一个非常简单的问题,请原谅我的无知。但是有人可以帮助我为我的案例找到解决方案:
我已经从我的 js 代码创建了一些静态 html5 页面和一个离线数据库,可以跨所有 html5 页面访问。现在我正在尝试从一页更新数据库,并希望在所有 html5 页面中更新数据库反射。
提前致谢。
要从多个不同页面访问离线数据库,请确保您的所有页面都在同一个域中。
在所有页面上创建与数据库的新连接。
var db_conn = window.openDatabase( _ID_DATABASE_NAME, _ID_DATABASE_VERSION, _ID_DATABASE_DESC, _ID_DATABASE_SIZE );
传递给函数的所有参数应保持不变。
如果您尝试访问的值只是几个名称值对,请尝试使用本地存储的概念。以下是可跨页面访问的 setter getter 方法。
window.localStorage.setItem( 'myFirstLocalStorage_Name', 'myFirstLocalStorage_Value' );
var ls_value = window.localStorage.getItem( 'myFirstLocalStorage_Name' );
希望您能够跨页面获取您的值。
正如您所说,它是离线数据库,将值存储在某个全局变量中,然后再将其存储到数据库中。在所有其他页面中,依赖于该全局变量。因此,如果您在 page1 中更新了一些数据,也将其存储在某个全局变量中。并在所有其他页面中使用该变量。
两个页面的域需要相同。
w3c 说
用户代理可能会将对数据库对象的访问限制为源自浏览上下文的顶级文档域的脚本,例如拒绝对运行在 iframe 中的其他域的页面的 API 访问。