Internet explorer 9出现转义双引号javascript问题
以下是我的情况: var sql='INSERT-INTO\'template\'u items\'(\'item\')值(\'0a\') 警报(sql)给出以下值: 在“模板项目”(“项目”)值(“0a”)中插入Internet explorer 9出现转义双引号javascript问题,javascript,escaping,double,quotes,Javascript,Escaping,Double,Quotes,以下是我的情况: var sql='INSERT-INTO\'template\'u items\'(\'item\')值(\'0a\') 警报(sql)给出以下值: 在“模板项目”(“项目”)值(“0a”)中插入 这是正确的,并且显示了双引号的正确转义 但当在IE9调试器(F12)中查看变量sql时,下面是它的值 “将值(\'0a\”)插入到“模板\u项目”(\'item\”)中” 反斜杠还在那儿 现在,当我在以下语句中使用变量sql时,这就产生了问题: connection.beginter
这是正确的,并且显示了双引号的正确转义 但当在IE9调试器(F12)中查看变量sql时,下面是它的值 “将值(\'0a\”)插入到“模板\u项目”(\'item\”)中” 反斜杠还在那儿 现在,当我在以下语句中使用变量sql时,这就产生了问题: connection.beginters() 执行(sql) connection.CommitTrans()
这个问题的解决办法是什么?首先;你应该永远不要在前端创建SQL!!!这是一个巨大的安全漏洞
第二:要解决控制台中的问题,您可以在文本周围使用单引号,在文本内部使用双引号:
var text='text'
中的一些“引号”(但当后端接收到您的字符串时,这应该不是问题),以防其他任何人面临相同的问题
[accessdb.js][1]工作正常
我对此进行了调试,发现recordset.open遗漏了一些参数。这根本不能回答您的问题,但是……为什么JavaScript中有SQL?(除非您使用的是Web SQL客户端,这很好,但这是正确的)至于您的“问题”,调试器会向您显示字符串的表示形式(包括起始引号和终止引号),以及转义反斜杠。但是,这只是表示法;字符串实际上不包含它们(当您使用
警报显示值时可以看到)。当我使用connection.Execute(sql)时;语句,它接受的是调试器值而不是警报值。现在,当我不转义双引号时,调试器会自动显示反斜杠。因此,似乎没有办法在IE9调试器中保留双引号而不使用反斜杠并执行(sql)声明虽然我完全同意你的第一段,但你的第二段是不正确的(OP已经在做了)。“插入到‘模板项目’(‘项目’)值(‘0a’)”。如果你是这个意思,那么没有任何区别,问题仍然存在。不,我的意思是:‘插入到‘模板项目’(‘项目’)价值(“0a”);