javascript - 三层嵌套引号的问题

标签 javascript ruby-on-rails escaping quotes

这是我的情况。我有一个 Rails View ,页面上有一个 javascript 函数。在该函数内,我使用了 erb 的片段,它需要向该函数输出一个字符串。我在 erb 中使用的变量包含一个 html 字符串。该 html 字符串内部包含用于各种元素属性的字符串。最后,由于 css,元素属性的一些字符串也具有字符串。

这就是我的 javascript 函数的样子:

tinyMCE.activeEditor.setContent('<%= @template.html_safe %>');

这就是 erb 渲染后的样子:

tinyMCE.activeEditor.setContent('<table border="0" class="mceItemTable" width="440" style="height: 309px; "><tbody><tr><td style="text-align: center; background-color: #ff0000;" data-mce-style="text-align: center; background-color: #ff0000;"><span style="font-size: xx-large; font-family: 'arial black', 'avant garde'; color: rgb(255, 255, 0); ">THIS</span></td><td style="background-color: rgb(154, 205, 50); text-align: center; "><span style="font-size: xx-large; font-family: 'arial black', 'avant garde'; color: rgb(30, 144, 255); ">IS</span></td></tr><tr><td style="background-color: rgb(30, 144, 255); text-align: center; "><span style="font-size: xx-large; font-family: 'arial black', 'avant garde'; color: rgb(154, 205, 50); ">A</span></td><td style="background-color: rgb(255, 255, 0); text-align: center; "><span style="font-size: xx-large; font-family: 'arial black', 'avant garde'; color: rgb(255, 0, 0); ">TEST</span></td></tr></tbody></table><p><br data-mce-bogus="1"></p>');

这不会导致任何问题,直到出现这样的情况:

tinyMCE.activeEditor.setContent('<span style="font-family: 'arial black', 'avant garde'; color: rgb(255, 0, 0); ">TEST</span>');

我需要转义最里面的引号,这样它们就不会与外部引号冲突。

最佳答案

有一个帮助程序:

tinyMCE.activeEditor.setContent('<%= escape_javascript @template %>')

它的别名也为 j

关于javascript - 三层嵌套引号的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12116415/

相关文章:

javascript - .... 之间有什么区别?

ruby-on-rails - ActiveRecord:如何设置模型的 "changed"属性?

ruby-on-rails - heroku:PG::InvalidTextRepresentation:错误:整数的无效输入语法: “”

javascript - 如何处理 AngularJS 在我的 URL 中格式化正斜杠以转义代码 %2F

javascript - 防止导航离开 jquery mobile 中的对话框

javascript - 用户名格式 : Comparing the input data in an array

javascript - 图像可以链接为分页中的 $next 吗?

ruby-on-rails - : domain. com 连接失败(NoMethodError:未定义方法 `>' 为 true:TrueClass)

javascript - 将代码部分运行为 html 和文本

c++ - 使用 C++ Mysql 驱动程序转义字符串