对href使用JavaScript单引号和双引号

nai*_*der 11 javascript escaping

我遇到了href在JavaScript函数中转义单引号和双引号的问题.

我里面有这个JavaScript代码href.就像是 -

<a href = "javascript:myFunc("fileDir/fileName.doc", true)"> click this </a>
Run Code Online (Sandbox Code Playgroud)

现在,因为双引号内的双引号无效,我需要转义内部双引号,因为它被视为字符串的一部分 - 所以,我需要这样做 -

<a href = "javascript:myFunc(\"fileDir/fileName.doc\" , true)"> click this </a>
Run Code Online (Sandbox Code Playgroud)

问题是,即使上面的代码不起作用.JavaScript代码被截断 - myFunc(

我尝试使用单引号变体 - 但即使这似乎也不起作用(意味着如果我在字符串文字中有单引号,则代码会被截断).

这就是我用单引号做的事情:

<a href = 'javascript:myFunc("fileDir/fileName.doc" , true)'> click this </a>
Run Code Online (Sandbox Code Playgroud)

这是有效的,但是如果我在字符串中有一个单引号,那么代码将以与双引号相同的方式截断.

nic*_*ckf 29

使用反斜杠来转义引号是如何在JavaScript中工作的,但你实际上并没有在那里编写JavaScript代码:你正在编写HTML.您可以使用HTML转义方法:字符实体来完成此操作.

&quot;  // "
&#39;   // '
Run Code Online (Sandbox Code Playgroud)

例如:

<a href="javascript: alert('John O&#39;Brien says &quot;Hi!&quot');">...</a>
Run Code Online (Sandbox Code Playgroud)

  • 我想你仍然需要逃避&#39; 因为一旦解析了html,实体的值将被扩展为'就像属性中的其他普通单引号一样.应该是'警惕('John O \&#39; Brien说'');` (2认同)