Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何找到indexedDB对象和事件的属性?_Javascript_Html_Indexeddb - Fatal编程技术网

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
,等等),以了解每个处理程序中的内容。