iframe内容是一个文本而不是HTML代码

时间:2017-09-17 16:21:47

标签: javascript iframe ejs

我遇到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();
});

bug

2 个答案:

答案 0 :(得分:1)

将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();
});

说明:<%= post.text %>提供的数据实际上是html-entity编码的。所以实际上你有sadasds&lt;i&gt;dasd...之类的东西。

答案 1 :(得分:0)

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

<%- post.text %>

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

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