2011-10-23 27 views
0

每本similar post雙引號,我嘗試以下,但沒有加工過,錯誤注意到擺動:逃逸事件處理程序,做一個警報,使用Grails

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

最後一種形式是正確的。我不知道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

謝謝MaxArt,我會認真考慮這件事。我想它在一個地方組織所有的代碼。感謝您確認第一個作品。當我在那裏添加另一個黑色的時候,它確實有效。 – Ray

1

你試過

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

只是另一種選擇。

+0

謝謝奧斯汀。它不起作用,可能與Dennis的帖子類似,也就是Grails將頁面翻譯爲:onclick =「alert('This is my &#8220;引用文字:&#8221;');」由於某種原因,這在瀏覽器中不起作用,不知道爲什麼。 – Ray