<!DOCTYPE html> <title>IDBCursor.advance() - index - iterate cursor number of times specified by count </title> <link rel="author" title="Microsoft" href="http://www.microsoft.com"> <script src=/resources/testharness.js></script> <script src=/resources/testharnessreport.js></script> <script src=support.js></script> <script> var db, count = 0, t = async_test(), records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" }, { pKey: "primaryKey_1", iKey: "indexKey_1" }, { pKey: "primaryKey_2", iKey: "indexKey_2" }, { pKey: "primaryKey_3", iKey: "indexKey_3" }]; var open_rq = createdb(t); open_rq.onupgradeneeded = function(e) { db = e.target.result; var store = db.createObjectStore("test", {keyPath:"pKey"}); store.createIndex("idx", "iKey"); for(var i = 0; i < records.length; i++) { store.add(records[i]); } }; open_rq.onsuccess = function (e) { var cursor_rq = db.transaction("test") .objectStore("test") .index("idx") .openCursor(); cursor_rq.onsuccess = t.step_func(function(e) { var cursor = e.target.result; assert_true(cursor instanceof IDBCursor); switch(count) { case 0: count += 3; cursor.advance(3); break; case 3: var record = cursor.value; assert_equals(record.pKey, records[count].pKey, "record.pKey"); assert_equals(record.iKey, records[count].iKey, "record.iKey"); t.done(); break; default: assert_unreached("unexpected count"); break; } }); } </script> <div id=log></div>