从火狐附加组件中选择 sqlite 时出错

Error when make a select into sqlite from firefox add-on

本文关键字:选择 sqlite 出错 组件 火狐      更新时间:2023-09-26

我正在编写的Firefox附加组件上使用sqlite.js库。

我已经插入了很多数据问题,但是,当我尝试使这个非常简单的选择

function selecionaUsuarioPorNome (nome, teste){
    sqlite.execute("select * from Usuario;", function(result,status){
        cm.enviaMensagem ("rows = " + result.rows + "'ncols = " + result.cows);
        for(var i=0;i<result.rows;i++){
            for(var j=0;j<result.cols;j++){
                console.log(result.data[i][j]);
            }
        }
    });
}

我收到以下错误:

[17:08:29,013] [异常..."'错误:页面当前处于隐藏状态,并且 在再次可见之前不能再使用。 调用方法时: [mozIStorageStatementCallback::handleCompletion]" nsresult: "0x8057001c(NS_ERROR_XPC_JS_THREW_JS_OBJECT)"位置:"本地 帧 :: :: :: 第 0 行" 数据: 否]

我的项目结构是:

/
|
|___Lib
. . |
. . |____ main.js
. . |____ bd_manager.js
. . |____ sqlite.js

在主要.js我把主要功能:

exports.main = function (options, callbacks) {
    // quando o add-on é instalado
    if (options.loadReason == "install"){
        // call to test if I can get the user from the database.sqlite
        bd.selecionaUsuarioPorNome ("vitor", function (){});
    }
}

有人知道这个错误吗?

谢谢!

似乎

与SQLite没有任何关系。当您尝试将消息发送到附加到不再加载但仍在后向缓存 (bfcache) 中的页面的内容脚本(辅助角色)时,将生成此错误。因此,您尝试向其发送消息的工作人员将附加到用户或您的加载项已经导航离开的页面。

sqlite.js 中的handleCompletion包装器执行的回调会触发此错误。可能是下一行,因为其他行似乎没问题,而这一行是唯一没有源代码的行。

cm.enviaMensagem ("rows = " + result.rows + "'ncols = " + result.cows);`

如果不了解您的代码(一个完整的、可重现的示例),我无法告诉您更多。