【问题标题】:How to render string as HTML through a JS web widget?如何通过 JS Web 小部件将字符串呈现为 HTML?
【发布时间】:2015-12-22 10:37:35
【问题描述】:

我有一个 Rails 后端,它发送类似

的字符串
<p>Hello world</p>

等等。

但不管我做什么

$('div#target').after(...) or $('div#target').html(...)

字符串保持净化。我怎样才能把它变成有效的 HTML?

注意:在我的客户端上,我只有一个 &lt;script&gt; 标签

发送字符串的代码位:

function main() {
  jQuery(document).ready(function($){
    var body = "<%= @body %>";
    $('script#parentdiv').after("<div class='parent'></div>");
    $('.parent').html(body);
  });

【问题讨论】:

  • 你能显示发送字符串的代码吗
  • 您可能需要在要发送的字符串上调用 html_safe。

标签: javascript jquery ruby-on-rails ruby-on-rails-4


【解决方案1】:
var body = "<%= @body %>";

需要

var body = "<%= @body.html_safe %>";

【讨论】:

    【解决方案2】:

    如果你特别想使用 jQuery,那么

      var str = "hello, <b>my name is</b> jQuery.",
      html = $.parseHTML( str ), 
      // Append the parsed HTML
      $("#anyDomElement").append( html );`
    

    这直接来自 jQuery 文档: http://api.jquery.com/jquery.parsehtml/

    否则这也可以通过native轻松完成Creating a new DOM element from an HTML string using built-in DOM methods or prototype

    任何字符串都需要被解析并创建为DOM的节点才能被浏览器理解。

    【讨论】:

      猜你喜欢
      • 2020-06-11
      • 2022-08-24
      • 2022-01-25
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      相关资源
      最近更新 更多