我有這樣的一個some_file.js.erb
文件escape_javascript和單引號
console.log("<%= escape_javascript(translate "I can't do that") %>")
,輸出:I can't do that
我想不通爲什麼它不正確地顯示單引號。有任何想法嗎?
我有這樣的一個some_file.js.erb
文件escape_javascript和單引號
console.log("<%= escape_javascript(translate "I can't do that") %>")
,輸出:I can't do that
我想不通爲什麼它不正確地顯示單引號。有任何想法嗎?
您可以在字符串上使用html_safe
方法。
console.log("<%= escape_javascript "I can't do that".html_safe %>")
這正是escape_javascript應該做的。從documentation獲取escape_javascript
:
轉義回車和JavaScript段的單引號和雙引號。
相信逃脫JS是不會給你的HTML代碼安全
嘗試console.log("<%= escape_javascript "I can't do that".html_safe %>")
澄清 - 因爲它是一個翻譯字符串,我們不能用'html_safe'這裏。想象一下,它是'escape_javascript'(翻譯「我不能這樣做」),翻譯者可以把他們想要的東西放在那裏。 –
不知道我明白。但我猜你的意思是用戶在表單中輸入一個字符串,點擊「翻譯」,然後服務器進行翻譯,然後將翻譯後的字符串返回給js.erb模板中的瀏覽器?你想確保翻譯字符串中的任何單引號都能正確轉義? –