Safari 5:Javascript sqlite“插入事务”似乎无法正确查看范围内的变量

Safari 5:Javascript sqlite“插入事务”似乎无法正确查看范围内的变量,javascript,database,sqlite,safari-extension,safari,Javascript,Database,Sqlite,Safari Extension,Safari,在坚果壳里,我把编程作为一种爱好。我正在尝试将数据插入Safari5中的SQLite数据库 我不担心注入攻击,因为使用自制的扩展,这只是用于从我访问的一些站点收集数据 My Transaction在循环的每次迭代中插入一行,该循环包含来自“DOM更改事件”的数据,最多持续20次,因此迭代无法看到正确传递给它的变量。调用“console.logvariable”表明它们确实包含正确的数据,但insert不会为每个记录插入正确的不同数据,除了第一个变量,它通过我自己的增量机制正确地递增,该机制与其他

在坚果壳里,我把编程作为一种爱好。我正在尝试将数据插入Safari5中的SQLite数据库

我不担心注入攻击,因为使用自制的扩展,这只是用于从我访问的一些站点收集数据

My Transaction在循环的每次迭代中插入一行,该循环包含来自“DOM更改事件”的数据,最多持续20次,因此迭代无法看到正确传递给它的变量。调用“console.logvariable”表明它们确实包含正确的数据,但insert不会为每个记录插入正确的不同数据,除了第一个变量,它通过我自己的增量机制正确地递增,该机制与其他行为不正常的变量在同一范围内

我读过“工人”很重要,但对他们一无所知

注意:Windows 7 Pro

感谢您的指点,谢谢

}

//全局变量:事件整数、snip数组、计数整数 请原谅愚蠢的语法问题-我不得不去掉一些杂碎以使其可读-但是本质仍然是控制台日志报告vars包含我想要的内容,但是“tx.executeSql”说没有

注意:为了发现问题,已从插入的值中删除了所有约束-在全局级别的声明中甚至没有坚持主键。此外,为了澄清,“id”正确增加,并在db中记录,但其他三个以不变的值插入-与日志报告相反,我意识到日志没有输出id,但在清理之前确实输出了id


非常感谢。

我想我已经拿到了,而且一闪而过。“公共”变量,如“title”,在每次迭代期间重新分配,但不是简单的整数“p”,直到出现一个谜题,但我认为这里的参考值与值在它们的最后一个值处起作用,因此,在循环的最后一次迭代期间,始终是最重要的值。为了解决这个问题,我将这些值简单地重新记录到一个新数组中,这样我就不必担心当前数组的长度等问题,在该数组上使用了“push..”和“pop..”。我希望现在说我可以继续前进还为时过早。感谢您的查看和任何划痕。

您可能需要发布代码以帮助我们帮助您。欢迎使用StackOverflow。几个指针。。。如果你想留下来,请注册一个帐户。我合并了你的两个未注册帐户。当你未注册时,很容易意外创建多个帐户。此外,您可以随时编辑问题以添加其他信息。最后,几天后你可以选择你的答案作为解决方案。看起来有点奇怪,但这就是我们围绕这些部分做事情的方式。
enter code here: HandleDOM_Change = function()  {
for (p=0; p<snip.length; p++)   { 
    title = snip[p].getElementsByClassName('title')[0].firstChild.textContent;
    value = snip[p].getElementsByClassName('value')[0].firstChild.textContent;
    lang = snip[p].getElementsByClassName('lang')[0].textContent;
    if (hP[p] != lang)  {
        ++count;
        id = count;
        db.transaction(function (tx) {
             console.log("events:" +events+ " title:" +title+ " value/p+1/lang: " +value+ ", " +(p+1)+ ", " +lang);
             tx.executeSql('INSERT INTO foo (id, text, time, name) VALUES (?, ?, ?, ?)', [id, title, value, lang]);
        },myTransactionErrorCallback,myTransactionSuccessCallback);
    hP[p] = lang;
    }
}
++events;