【问题标题】:Iframe content is a text not html codeiframe 内容是文本而不是 html 代码
【发布时间】:2018-02-26 05:18:39
【问题描述】:

我遇到了 iframe 的问题。我在 iframe 的<body> 中添加了 HTML 代码(字符串 - 我从 DB 中获取该代码),但我无法将该代码视为 HTML,它只是一个字符串。

document.getElementById("iframe_with_content").ready(function() {
        (document.getElementById("iframe_with_content").contentWindow.document).write("<%= post.text %>");
        (document.getElementById("iframe_with_content").contentWindow.document).close();
});

【问题讨论】:

    标签: javascript iframe ejs


    【解决方案1】:

    这可能是因为 ejs 完成了 html 转义尝试检查这是否有效:

    <%- post.text %>
    

    参考:How to escape HTML in node.js EJS view?

    警告:小心使用这些功能请检查 XSS 攻击

    【讨论】:

      【解决方案2】:

      在您的页面中包含 jQuery,并且

      var data = $('<textarea />').html("<%= post.text %>").text();
      document.getElementById("iframe_with_content").ready(function() {
              (document.getElementById("iframe_with_content").contentWindow.document).write(data);
              (document.getElementById("iframe_with_content").contentWindow.document).close();
      });
      

      解释:&lt;%= post.text %&gt; 提供的数据实际上是 html-entity-encoded。所以实际上你有类似sadasds&amp;lt;i&amp;gt;dasd...的东西。

      【讨论】:

      • 非常感谢!尝试了很多东西,但只有这一个对我有用
      猜你喜欢
      • 2011-08-31
      • 2018-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      • 2011-05-29
      相关资源
      最近更新 更多