Javascript 如何找到indexedDB对象和事件的属性?
我无法找到列出我可以从返回到Javascript 如何找到indexedDB对象和事件的属性?,javascript,html,indexeddb,Javascript,Html,Indexeddb,我无法找到列出我可以从返回到onsuccess或onerror回调的事件对象中获取的信息,以执行不同的操作。这是我所找到的最详细的信息,但它没有提到这一点 例如: var req = indexedDB.open( "mydb" ); req.onsuccess = function(evt) { //I know this only from examples, but how else can I know what //evt.target.result would r
onsuccess
或onerror
回调的事件对象中获取的信息,以执行不同的操作。这是我所找到的最详细的信息,但它没有提到这一点
例如:
var req = indexedDB.open( "mydb" );
req.onsuccess = function(evt)
{
//I know this only from examples, but how else can I know what
//evt.target.result would refer to? And what else is in evt?
var db = evt.target.result;
}
以及另一个“成功”回调:
var req = myObjectStore.add( someData );
req.onsuccess = function(evt)
{
//What does this refer to? What else is in the event object?
var whatIsThis = evt.target.result;
}
是的,这是IndexedDB API最令人困惑的方面。因为API文档是用于浏览器实现的,所以开发人员并不清楚
是这样的。每个请求都会发出一个操作,该操作由以下操作之一定义。API文档将告诉您每个操作将运行什么算法。这些算法始终返回一个值(可能未定义),该值设置为事件目标结果。因此,请检查算法的返回值 是的,这是IndexedDB API最令人困惑的方面。因为API文档是用于浏览器实现的,所以开发人员并不清楚
是这样的。每个请求都会发出一个操作,该操作由以下操作之一定义。API文档将告诉您每个操作将运行什么算法。这些算法始终返回一个值(可能未定义),该值设置为事件目标结果。因此,请检查算法的返回值 请尝试
console.dir(evt)
@JoshFroelich谢谢,但是这些属性选择不能更改吗?因为它们不是规范的文件部分(我可以找到),它们不能突然改变吗?例如,对从transaction.oncomplete
返回的事件执行该代码时,将事务显示为target
,将event.target.db
显示为数据库(在Firefox中),但每个浏览器不能决定以不同的方式实现或在某个时候更改它吗?因此,他们可能会选择使它与其他处理程序一致,并使event.target.result
成为db?@JoshFroelich同样,我需要以某种方式使每个处理程序都被调用(onblocked
,onerror
,等等),以了解每个处理程序中的内容。请尝试console.dir(evt)
@JoshFroelich谢谢,但这些财产选择难道不能改变吗?因为它们不是规范的文件部分(我可以找到),它们不能突然改变吗?例如,对从transaction.oncomplete
返回的事件执行该代码时,将事务显示为target
,将event.target.db
显示为数据库(在Firefox中),但每个浏览器不能决定以不同的方式实现或在某个时候更改它吗?因此,他们可能会选择使它与其他处理程序一致,并使event.target.result
成为db?@JoshFroelich同样,我需要以某种方式使每个处理程序都被调用(onblocked
,onerror
,等等),以了解每个处理程序中的内容。