Javascript文字转义在IE,但不是Firefox, Chrome或Safari
Javascript literal escaped in IE but not Firefox, Chrome or Safari
我已经生成了内联代码,将值分配给javascript数组。数组中的一个元素应该被设置为"c:'folder'somefilename"。语句很长,为了简洁起见,我省略了大部分:
<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>
valueText元素的内容"c:'uploadfile.txt"是在生成代码之前从用户输入中捕获的。当这段代码在Chrome、Firefox、IE5、IE6或Safari中执行时,文本不会被解析,只是正确地分配给数组。IE7,8和9抛出错误"预期十六进制数字",将"'u"视为转义序列。
我不希望javascript解析转义字符的字面量。我试过旧的,把它放在CDATA标签。有解决这个问题的方法吗?
TIA,埃迪
如果字符串包含反斜杠,则必须对其进行转义。例如:
{"valueText": "c:''uploadfile.txt"}
如果您在服务器上使用库创建JSON,则会自动进行转义。也就是说,请不要手工生成JSON
你试过吗?:
"valueText" : "c:''uploadfile.txt"
此MSDN页面表明在JScript (IE)中处理此问题的正确方法是使用两个反斜杠。
注意:如果要在字符串中使用文本'u,则使用两个反斜杠- ('u) -一个用于转义第一个反斜杠。
相关文章:
- Angular js$Interval怪异行为-Firefox Chrome
- 由于传输层/meta/connect调用,使用faye/nodejs在Firefox / chrome上的初始页面加载时
- d3实现可以在firefox/chrome上运行,但不能在iPad上运行
- 为什么这个表达式在 Firefox/Chrome 中返回 true,而在 IE 中返回 false
- Jasmine 测试在测试运行中、Firefox/Chrome 之间以及检查器开/关时的结果不一致
- JavaScript XML解析在IE中工作,但在Firefox / Chrome中不起作用
- contentEditable and lastChild IE, Firefox & Chrome LastC
- WEBGL_draw_buffers最新的Firefox / Chrome上不支持
- 在Firefox / Chrome页面中打开IE浏览器
- 网站不适用于Firefox/Chrome,但适用于IE
- 任何使IE显示CSS3/HTML5与Firefox/Chrome相同的脚本
- onblur事件在IE/Firefox/Chrome中有所区别
- JQuery翻译函数在firefox/chrome中不起作用
- AudioContext Analyser在firefox/chrome上工作,但在Safari上不工作
- document.body.scrollHeight在firefox/chrome中产生两种不同的结果
- javascript数组的作用域不同于IE9和FireFox/Chrome
- 开发一个Firefox/Chrome扩展,覆盖形状的网页
- 如何隐藏地址栏在最新版本(Firefox, chrome和internet explorer)使用javascript窗
- innerHTML写上.value适用于IE9 IE8,但不适用于IE10, Firefox, Chrome
- Scrollbottom js不工作在Firefox, Chrome, Safari