在JavaScript函数参数中传递双引号

时间:2014-01-16 16:43:58

标签: javascript

我遇到以下html的问题

<span onClick="alert('hi&#34 more stuff')">Works</span><br/>
<span onClick='alert("Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.")'>Works long text</span>
<br />
<span onClick='alert("Far far &#34 away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.")'> Doesn't work long text</span>

我的问题是,在第三个onclick处理程序中,我在浏览器中收到一个未终止的字符串错误。在真实程序中,参数字符串是在客户端生成的,因此所有编码都必须在那里发生。

在有效的示例中,我尝试了&#34;&quot;,并在最后一个示例中使用。但他们确实在第一个例子中工作

http://jsfiddle.net/photo_tom/9d43U/1/

有一个工作样本

3 个答案:

答案 0 :(得分:9)

要在JavaScript "分隔字符串中使用",请使用\"

要在HTML "分隔的属性值中使用",请使用&quot;

如果需要,请将它们合并:\&quot;


或者,停止使用内部事件属性,编写unobtrusive JavaScript并绑定事件处理程序programatically

答案 1 :(得分:3)

用反斜杠\"转义它。

答案 2 :(得分:-3)

首先你应该写html,如:

attribute="property"

所以,如果你写:

onclick="alert('what you want here with encoded content it will work')"

查看您更新的提琴手http://jsfiddle.net/darkyndy/9d43U/5/