我有一个js.erb视图,它会替换我页面上的某些内容。我希望它插入HTML但是它插入的HTML没有正确呈现 - 你可以看到html标签。
我尝试了很多我能想象到的方法,甚至其他人推荐的方法,但都没有。例如,在我的js.erb:
中var list = $("#list");
list.append("<li>first</li>");
list.append("<%= "<li>second</li>" %>");
list.append("<%= raw("<li>third</li>") %>");
list.append("<%= escape_javascript raw("<li>fourth</li>") %>");
list.append("<%= raw escape_javascript("<li>fifth</li>") %>");
list.append("<%= escape_javascript("<li>sixth</li>") %>");
list.append("<%= "<li>seventh</li>".html_safe %>");
list.append("<%= raw("<li>eigth</li>").html_safe %>");
list.append(unescape("<li>9th</li>"));
list.append(unescape("<%= raw("<li>10th</li>") %>"));
list.append(unescape(unescape("<li>11th</li>")));
这就是我附加到列表中的内容(请注意,这是直接从HTML页面复制的,不是页面的来源):
<li>first</li><li>second</li><li>third</li><li>fourth</li><li>fifth</li><li>sixth</li><li>seventh</li><li>eigth</li><li>9th</li><li>10th</li><li>11th</li>
如何执行此操作以便页面将其呈现为HTML?
谢谢!
注意:我正在将我的应用程序从Rails 2升级到Rails 3,这是我在升级时遇到的问题。它在Rails 2中运行得非常好,这就是为什么我认为这是一个js.erb问题而不是JavaScript问题。
答案 0 :(得分:0)
所以你理解这个答案,请阅读我的问题的评论。它解释了我使用的是ajaxForm。
简而言之,我认为Rails 3给出的响应的mime类型与Rails 2不同。我怀疑这是答案,因为在谷歌搜索解决方案时,我找到了remotipart gem。这个gem帮助开发人员使Rails 3远程文件上传“微不足道”。
我注意到README状态下的指令将javascript包装在remotipart_response块中。 Looking at line 3 of remotipart.rb我看到 mime类型已更改为HTML 。
瞧,我实施了宝石,事情再次发挥作用。
答案 1 :(得分:0)
试试这个......
list.append("<li>third</li>");
OR,如果你渲染部分
append("<%= escape_javascript(render :partial => "show_new_pages")%>");