我在转移href
JavaScript函数中的单引号和双引号时遇到问题。
我在href
中有这个JavaScript代码。就像 -
<a href = "javascript:myFunc("fileDir/fileName.doc", true)"> click this </a>
现在,由于双引号内的双引号无效,我需要转义内部双引号,以便将其视为字符串的一部分 - 所以,我需要这样做 -
<a href = "javascript:myFunc(\"fileDir/fileName.doc\" , true)"> click this </a>
问题是,即使上面的代码也无效。 JavaScript代码在 - myFunc(
我尝试使用单引号变体 - 但即使这样也不起作用(意味着如果我的字符串文字中有单引号,那么代码会被截断)。
这就是我用单引号做的事情:
<a href = 'javascript:myFunc("fileDir/fileName.doc" , true)'> click this </a>
这样可行,但是如果我在字符串中有一个引号,那么代码会被截断,就像双引号一样。
答案 0 :(得分:29)
使用反斜杠来转义引号是它在JavaScript中的工作原理,但你实际上并没有在那里编写JavaScript代码:你正在编写HTML。您可以使用HTML转义方法:字符实体。
" // "
' // '
例如:
<a href="javascript: alert('John O'Brien says "Hi!"');">...</a>
答案 1 :(得分:1)
作为一般的最佳做法,请在HTML中使用双引号,在JavaScript中使用单引号。这将解决您的大多数问题。如果你需要一个JavaScript字符串中的单引号,你可以使用\'来逃避它 - 你可能不应该将文字字符串嵌套得更深。
如其他地方所述,如果代码嵌入HTML中,HTML实体是可能的。但是你仍然需要在JavaScript源文件中处理字符串中的转义引号,因此最好只有一个一致的策略来处理JavaScript。
如果您遵循此策略并最终在HTML中嵌入的JavaScript中嵌入双引号,则只需使用HTML实体&amp; quot;。
答案 2 :(得分:0)
如果有人需要逃避这样的事情:
%22
您可以将ASCII代码用于双引号<a href="www.google.com/search?q=%22how+to+escape+quotes+in+href%22"</a>
:
{{1}}
如果您从PHP传递链接到JavaScript
,它会特别有用答案 3 :(得分:-1)
通常,这种代码没有问题:
<a href="#" onclick="myFunc('...')">Click this</a>
使用此代码,您有任何问题吗?