Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java js中的转义双引号和其他特殊字符_Java_Javascript_Html_Jsp - Fatal编程技术网

Java js中的转义双引号和其他特殊字符

Java js中的转义双引号和其他特殊字符,java,javascript,html,jsp,Java,Javascript,Html,Jsp,我有一些类似java的东西 stringBuffer.append("<a onclick=\"javascript:setPName('"+StringEscapeUtils.escapeJavaScript(tmpResult)+"');\"><small> "+StringEscapeUtils.escapeJavaScript(tmpResult)+"</small></a>"); stringBuffer.append(“+String

我有一些类似java的东西

stringBuffer.append("<a onclick=\"javascript:setPName('"+StringEscapeUtils.escapeJavaScript(tmpResult)+"');\"><small> "+StringEscapeUtils.escapeJavaScript(tmpResult)+"</small></a>");
stringBuffer.append(“+StringEscapeUtils.escapeJavaScript(tmprelt)+”);
在Firebug的控制台上检查时,它是正确的。但当我从IE开发者工具检查时,我得到了以下信息:

TEST\“AKHIL

问题是浏览器仍然无法识别它。
我曾使用StringEscapeUtils.escapeJavaScript来转义单引号,但它不适用于双引号。

问题在于,您在用相同字符分隔的HTML属性值中使用了
字符

onclick="javascript:setPName('TEST\" <!-- attribute value ends here -->
onclick=“javascript:setPName('TEST\”
JavaScript是不相关的

您需要转义为HTML(
)而不是JS

您可以通过编写来完全避免此问题。

将[']更改为[“],试试看。(请删除“javascript:”)

stringBuffer.append(“+StringEscapeUtils.escapeHtml(tmpResult)+”);
或将值设置为属性(param)

stringBuffer.append(“+StringEscapeUtils.escapeHtml(tmpResult)+”);

那是什么
javascript:
在做什么?这是毫无意义的,因为没有循环可以中断或继续。请查看[this][1]帖子。[1]:然后onclick属性将具有值
javascript:setPName(
),这将使问题变得更糟!
stringBuffer.append("<a onclick=\"setPName(\""+StringEscapeUtils.escapeJavaScript(tmpResult)+"\");\"><small> "+StringEscapeUtils.escapeHtml(tmpResult)+"</small></a>");
stringBuffer.append("<a param=\""+StringEscapeUtils.escapeHtml(tmpResult)+"\" onclick=\"setPName(this.getAttribute('param'))\"><small> "+StringEscapeUtils.escapeHtml(tmpResult)+"</small></a>");