双引号JavaScript函数中的转义字符

时间:2011-10-22 18:18:11

标签: javascript

我有一个Web应用程序,我正在动态创建一个URL。网址有参数,我必须传递双引号。我尝试了所有不同的方法,但它仍然无法正常工作。有人有什么想法吗?

创建网址:

searchSurveyDetail.setSurveyFormURL(surveyDetail.getSurveyFormURL()+"#search="+ "\"" + searchValue + "\"");  

在页面上:

onClick="window.open('${surveyDetail.surveyInstructionsURL}')"

结果:

onClick="window.open('http://www.mytest.com/survey1.pdf#search="company"')"

2 个答案:

答案 0 :(得分:0)

我认为你在服务器端使用PHP?在这种情况下,您应该通过htmlspecialchars()运行URL,然后再将其连接到HTML。

答案 1 :(得分:0)

简短的回答是你需要双重避开双引号。所以你需要:

searchSurveyDetail.setSurveyFormURL(surveyDetail.getSurveyFormURL()+"#search="+ "\\\"" + searchValue + "\\\"");

产生:

onClick="window.open('http://www.mytest.com/survey1.pdf#search=\"company\"')"

将正确地转义引号。

要记住几件事:

  • 这不会处理搜索词本身的双引号。一定要逃避。
  • 我不确定您为什么要用双引号括起搜索词。对于典型的搜索网址,您需要一个查询字符串,例如:search=term而不是search="term",因为您最后会在最后删除引号。但也许你出于某种原因需要它。