使用Grails在执行警报的事件处理程序中转义双引号

时间:2011-10-23 00:14:40

标签: javascript html grails

根据这个similar post,我尝试了以下但没有工作,并注意到错误:

onclick="alert('This is my  \"quoted text:\"');"   (no browser response)

onclick="alert('This is my  \\"quoted text:\\"');  (no browser response) 

onclick="alert('This is my  "quoted text:"');"  (comes out as: This is my  "quoted text:")

onclick="alert('This is my  \x22quoted text:\x22');"  (grails .gsp page preprocessor chokes on this)

除了将警报放入功能之外的任何想法?我想在html / javascript中有一种方法可以做到这一点吗?

注意:我更新了标题以限定使用Grails的问题。以下所有解决方案一般都可以正常工作,但不适用于grails 1.3.7。根据MaxArt的指示,在每个反斜杠之前添加一个额外的反斜杠,在上面的版本4中做了什么。

2 个答案:

答案 0 :(得分:2)

最后一种形式是正确的。我不知道Grails是如何处理的,但你可能会试图逃避反斜杠。

您始终可以解析(并且实际上是更好的做法)将事件侦听器附加到元素而不是使用传统的事件声明。这应该在主体加载后执行:

document.getElementById("alerter").addEventListener("click", function() {alert('This is my "quoted text"');}, false);

当然,使用attachEvent用于Internet Explorer< 9。

这应该是你的元素:

<span id="alerter">Quoted text</span>

答案 1 :(得分:1)

你试过吗

&#8220; for a left
&#8221; for a right

只是另一种选择。