错误用法:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%><% var path1="C:\mydir\img"; var path2="C:\\mydir\\img";%><html><head> <script> var i="<%=path1%>"; var j="<%=path2%>"; alert(i); //输出C:mydirimg alert(j); //输出C:mydirimg </script></head></html>
原因:
因为i得到的是path1输出的值,而 \ 是转义字符 所以i实际得到的值是C:mydirimg,而
j虽然得到的值是C:\mydir\img,但j仍然是一个js变量,所以 \ 还是转义字符。剖开来看就像这样子:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%><% var path1="C:\mydir\img"; var path2="C:\\mydir\\img";%><html><head> <script> var i="C:mydirimg"; //i="<%=path1%>"; var j="C:\mydir\img"; //"<%=path1%>"; alert(i); //输出C:mydirimg alert(j); //输出C:mydirimg </script></head></html>
正确用法:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%><% var path1="C:\\\\mydir\\\\img";%><html><head> <script> var i="<%=path1%>"; alert(i); //输出C:\mydir\img </script></head></html>
原标题:Asp for JScript陷阱之一:字符转义
关键词:ASP