※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>Sample</title>
<style>
h1 {font-size: 14pt; font-weight:bold;
background-color:#DDF; padding:3px; }
#ftable tr td { background-color:#CFC; }
#datas tr td { background-color:#FCC; }
</style>
<script type="text/javascript">
var IDBTransaction;
var IndexedDB;
var db;
var objectStore;
IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction;
try {
IndexedDB = mozIndexedDB;
} catch(e){}
try {
IndexedDB = webkitIndexedDB;
} catch(e){}
function initial(){
var request = IndexedDB.open("MyTestDatabase");
request.onerror = function(event) {
alert("ERROR!");
};
request.onsuccess = function(event) {
db = request.result;
createObjectStoreMethod();
};
}
function createObjectStoreMethod(){
var request = db.setVersion("1.0");
request.onerror = function(event) { /* ERROR */ };
request.onsuccess = function(event) {
try {
objectStore = db.createObjectStore("mydata", { keyPath: "name" });
objectStore.createIndex("name", "name", { unique: true });
}catch(e){}
createList();
};
}
// データの追加
function addData(){
if (!db) return;
var mydatas = db.transaction([],IDBTransaction.READ_WRITE);
mydatas.oncomplete = function(event){
createList();
// alert("compete");
};
var objectStore = mydatas.objectStore("mydata");
var nstr = document.getElementById("name").value;
var estr = document.getElementById("email").value;
var tstr = document.getElementById("tel").value;
var data = { name: nstr, email: estr, tel:tstr };
objectStore.put(data);
}
// データの削除
function delData(){
if (!db) return;
var mydatas = db.transaction([],IDBTransaction.READ_WRITE);
mydatas.oncomplete = function(event){
createList();
//alert("delete.");
};
var objectStore = mydatas.objectStore("mydata");
var nstr = document.getElementById("name").value;
objectStore.delete(nstr);
}
// データを取得
function doFind(){
if (!db) return;
var datas = document.getElementById("ftable");
for (var i =datas.childNodes.length-1; i>=0; i--){
datas.removeChild(datas.childNodes[i]);
}
var fstr = document.getElementById("fstr").value;
var mydatas = db.transaction([]);
mydatas.oncomplete = function(event){
// alert("find.");
};
var objectStore = mydatas.objectStore("mydata");
var re = objectStore.get(fstr);
re.onsuccess = function(e){
var val = e.target.result;
if (!val) return;
var tr = document.createElement("tr");
var td1 = document.createElement("td");
td1.innerHTML = val.name;
tr.appendChild(td1);
var td2 = document.createElement("td");
td2.innerHTML = val.email;
tr.appendChild(td2);
var td3 = document.createElement("td");
td3.innerHTML = val.tel;
tr.appendChild(td3);
datas.appendChild(tr);
};
}
// リストを表示
function createList(){
if (!db) return;
var datas = document.getElementById("datas");
for (var i =datas.childNodes.length-1; i>=0; i--){
datas.removeChild(datas.childNodes[i]);
}
var objectStore = db.transaction([]).objectStore("mydata");
var re = objectStore.openCursor();
re.onsuccess = function(event){
var cur = event.target.result;
if (!cur) return;
var val = cur.value;
var tr = document.createElement("tr");
var td1 = document.createElement("td");
td1.innerHTML = val.name;
tr.appendChild(td1);
var td2 = document.createElement("td");
td2.innerHTML = val.email;
tr.appendChild(td2);
var td3 = document.createElement("td");
td3.innerHTML = val.tel;
tr.appendChild(td3);
datas.appendChild(tr);
cur.continue();
};
}
</script>
</head>
<body onload="initial();">
<h1>Index DB Sample.</h1>
<div>
<p>※データ検索</p>
<input type="text" id="fstr">
<input type="button" onclick="doFind();" value="Find">
</div>
<table id="ftable" width="400px"></table>
<hr>
<table id="datas" width="400px"></table>
<hr>
<div>
<p>※データ作成</p>
<input type="text" id="name"><br>
<input type="text" id="email"><br>
<input type="text" id="tel"><br>
<input type="button" value="Add" onclick="addData();">
</div>
<hr>
<p>※データ削除</p>
<input type="text" id="name">
<input type="button" value="Delete" onclick="delData();">
</div>
</body>
</html>
| << 前へ |