【发布时间】:2013-01-02 07:44:07
【问题描述】:
我是html5和js的新手,如果这是一个非常简单的问题,请原谅我的无知。 但是有人可以帮我为我的情况找到解决方案吗:
我已经创建了一些静态 html5 页面,并且还从我的 js 代码创建了一个离线数据库,该数据库可以跨所有 html5 页面访问。 现在我正在尝试从一页更新数据库,并希望 在所有 html5 页面中更新数据库反射。
提前致谢。
【问题讨论】:
标签: javascript html
我是html5和js的新手,如果这是一个非常简单的问题,请原谅我的无知。 但是有人可以帮我为我的情况找到解决方案吗:
我已经创建了一些静态 html5 页面,并且还从我的 js 代码创建了一个离线数据库,该数据库可以跨所有 html5 页面访问。 现在我正在尝试从一页更新数据库,并希望 在所有 html5 页面中更新数据库反射。
提前致谢。
【问题讨论】:
标签: javascript html
正如您所说,它是离线数据库,将值存储在某个全局变量中,然后再将其存储到数据库中。在所有其他页面中,依赖于该全局变量。因此,如果您在 page1 中更新了一些数据,也将其存储在某个全局变量中。并在所有其他页面中使用该变量。
【讨论】:
要从多个不同页面访问离线数据库,请确保您的所有页面都在同一个域中。
在所有页面上创建与数据库的全新连接。
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' );
希望您能够跨页面获取您的价值观。
【讨论】:
两个页面的域必须相同。
w3c 说
用户代理可能会将对数据库对象的访问限制为脚本 起源于浏览的顶级文档的域 上下文,例如拒绝访问来自其他页面的 API 在 iframe 中运行的域。
【讨论】: