IE中转义的Javascript文本,但不是Firefox、Chrome或Safari
我已经生成了内联代码,为javascript数组赋值。数组的一个元素应设置为“c:\folder\somefilename”。这句话太多了,为了简洁起见,我省略了大部分内容:IE中转义的Javascript文本,但不是Firefox、Chrome或Safari,javascript,internet-explorer,escaping,Javascript,Internet Explorer,Escaping,我已经生成了内联代码,为javascript数组赋值。数组的一个元素应设置为“c:\folder\somefilename”。这句话太多了,为了简洁起见,我省略了大部分内容: <SCRIPT type="text/javascript"> var StepsList = {"steps": [ { "id": "RST4551509111516131001035411012110410849", "stepAudio": "",
<SCRIPT type="text/javascript">
var StepsList = {"steps": [
{
"id": "RST4551509111516131001035411012110410849",
"stepAudio": "",
"screenImage": "IO1A.PNG",
"demoNote": "",
"controlRect": {
"top": "297",
"left": "256",
"right": "277",
"bottom": "318"
},
"valueText": "c:\uploadfile.txt",
"label": "Presentation Server File"
[snipped]
</SCRIPT>
var StepsList={“步骤”:[
{
“id”:“RST4551509111516131001035411012110410849”,
“stepAudio”:“,
“屏幕图像”:“IO1A.PNG”,
“注”:“注”,
“controlRect”:{
“top”:“297”,
“左”:“256”,
“右”:“277”,
“底部”:“318”
},
“valueText”:“c:\uploadfile.txt”,
“标签”:“演示服务器文件”
[剪下]
valueText元素“c:\uploadfile.txt”的内容在代码生成之前从用户输入中捕获。当在Chrome、Firefox、IE5、IE6或Safari中执行此代码时,不会解析文本,只会将其正确分配给数组。IE7、8和9在看到“\u”时抛出错误“预期十六进制数字”作为逃逸序列
我不希望javascript解析转义字符的文本。我已经尝试了旧的方法,并将其放入CDATA标记中。是否有解决此问题的方法
蒂亚,
艾迪,你试过这个吗
"valueText" : "c:\\uploadfile.txt"
如果字符串将包含文字反斜杠,则必须对其进行转义。例如:
{"valueText": "c:\\uploadfile.txt"}
如果您使用服务器上的库创建JSON,它将自动转义。也就是说,请不要手动生成JSON。表明在JScript(IE)中处理此问题的正确方法是使用两个反斜杠
注:
如果要在字符串中使用文字文本\u,请使用两个反斜杠-(\u)-1来转义第一个反斜杠
嗯,
\
是JS字符串中的转义字符,对此你无能为力。如果你想要一个文本反斜杠,你必须转义它。因此,答案似乎是在输入托管代码时解析用户输入并保存转义数据,然后在生成时再次转义数据,然后在用户重新输入数据。或者-不支持IE8或IE9。C#允许您在文本前加上“@”,告诉它不要转义文本。即@“C:\folder\file”vs“C:\\folder\\file”。