我有內部存儲爲使用iframe來可視化這些文件的斑點和web應用程序的HTML文檔的IndexedDB的數據庫。主窗口的IndexedDB數據庫與iframe內容的不同?
我的問題是:我想要獲取數據庫的存儲位置,每次點擊html文檔中顯示的iframe內部鏈接時,html文檔都存儲在該文檔中,但是當我嘗試時它會拋出異常。當我不在iframe的「內部」(該函數位於iframe中的超鏈接綁定的eventListener內部)時,它沒有任何問題。
使用的功能是:
function getObjectStore(store_name, mode) {
var tx = db.transaction(store_name, mode); // mode in this case is 'readonly'
return tx.objectStore(store_name); // line where the exception is thrown when "inside the iframe"
}
其中db是我的數據庫。拋出的異常是:
異常......「嘗試並沒有讓基因突變數據庫上的突變操作。」代碼:「11」 nsresult:「0x80660006(InvalidStateError)」
因爲一切都與其他案件,我沒有看到讓我的商店的步驟中的任何問題都行,我想知道如果我有這個問題是因爲我無法到達主窗口的數據庫,即使主頁面和iframe中的頁面來自我的本地服務器,或者是因爲其他原因。
謝謝您的諮詢!
消息建議您在只讀事務中使用寫入運算。您顯示的代碼無助於查看問題。 iframe應該沒問題。使用chrome開發工具來調試iframe代碼。 –
我不明白的是爲什麼當我只請求objectStore時使用了寫入操作?在調用函數中,我只做'var store = getObjectStore(DB_STORE_NAME,'readonly');'並且它是引發異常的這一行。因此,我試圖瞭解問題所在,但也可能由於安全風險而被阻止,如Kristof Degrave所說。我期望一個更適合上下文的異常消息。 –
我嘗試了「讀寫」模式,並沒有任何改變,該消息保持不變... –