我正在开发一个简单的Rails / jQuery HTML模板应用程序,它在数据库中存储了一系列预先设计的模板(目前我刚将这些模板保存为部分以使基本概念正常工作)并点击'显示代码'以及这些模板记录中的任何一个,js.erb脚本应该通过该页面上的JS动态地将相应的部分放在'pre'标签内,这样用户就可以看到原始的html代码。
目前它正在工作,但我得到渲染的html回来而不是我正在寻找的原始HTML。这是js:
$("div#template-view").html("<pre><code><%= escape_javascript( render :partial => "core_template") %></code></pre>");
所以祈祷告诉我,我错过了哪些明显的东西!? : - )
由于
阿伦
答案 0 :(得分:3)
使用
$("div#template-view").text("...")
代替。这不会解析代码
答案 1 :(得分:1)
预标记将以合理的近似原始状态显示源代码(或任何文本),但它将不会为您转义html。未转义的html将始终呈现为html,无论它恰好是什么标记。通过转义我的意思是所有特殊字符都转换为其转义版本。 rails方法h将为您执行此操作,因此如果您使用调用escape_javascript的结果调用h,那么它应该可以正常工作。
$("div#template-view").html("<pre><code><%= h(escape_javascript(render :partial => "core_template")) %></code></pre>");