javascript - 单引号内Javascript双引号的字符串问题

标签 javascript string

这是我的代码:

<script>
    function popupTest(title) {
        alert(title);
        return false;
    }
</script>

<a href="" onclick="return popupTest('This is &#039;some&#039; &quot;test&quot; string')"><span>Recommend</span></a>

使用 Firefox 4 我得到错误:

Error: missing ) after argument list
Source Code:
return popupTest('This is 'some' "test" string')

它就像是在解码 HTML 实体,但我不知道为什么。

也试过...

<a href="" onclick="return popupTest('This is \'some\' \"test\" string')"><span>Recommend</span></a>

给出错误:

Error: unterminated string literal
Source Code:
return popupTest('This is \'some\' \

最佳答案

''HTML。因此对于第一个示例,解析 HTML 并传递 JavaScript 引擎:

return popupTest('This is 'some' "test" string')

…第二个'终止字符串。

另一方面:

onclick="return popupTest('This is \'some\' \"test\" string')"

解析为:

An onclick attribute with the value return popupTest('This is \'some\' \ followed by some invalid data.

您需要先处理 JavaScript:

return popupTest('This is \'some\' "test" string')

然后将其转义为 HTML:

onclick="return popupTest('This is \'some\' &quot;test&quot; string')"

使用 unobtrusive JavaScript 可能会更好并使用 JavaScript 绑定(bind)事件处理程序,而不是使用内部事件属性。

关于javascript - 单引号内Javascript双引号的字符串问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5947355/

相关文章:

javascript - document.getElementById 对于不同的 "id"值或此代码的替代方案

java - 如何只打印出 java 中有 5 个元素的数组的前 3 个元素?

c - 字符串数组 : Segmentation fault(core dumped)

javascript - 保存对内置方法的引用的好处

javascript - jQuery:在哪里插入 .animate 步骤函数

javascript - 将 Javascript Date() 转换为 PHP Unix 时间戳

javascript - Web 应用程序可用的键盘快捷方式

string - 一种字符串搜索算法,可以快速匹配大量未缩写字符串中的缩写?

c - 查找句子中的回文

java - 如何将两个 List<String> 合并为一个 List<String>?