需要制作一个“防弹”div

时间:2012-11-27 15:04:22

标签: html

即使内部信息的结构不正确,我如何制作一个不会破坏的div。

即:

<div id="bulletproof_div">
    <div> </div>
    <div> </div>
    <div id="unclosed_div">
</div>

<div id="normally_this_one_would_break">
</div>

编辑:上下文是它是一个邮件系统,我无法控制发送给我的信息,这就是为什么我需要这样做以便网站不会破坏。

我已成功尝试使用iframe,但我需要能够修改div的内部html,因此iframe不理想。

感谢您阅读

2 个答案:

答案 0 :(得分:2)

iframe是唯一可以隔离周围页面内容的100%防弹容器。

答案 1 :(得分:2)

如果您在将“标记”附加到“bulletproof_div”之前有权访问该标记,则可以使用此功能在添加标记之前“修复”标记

function cleanMarkup(markupStr) {
    // temp 'div' only used as a container, it is not returned with output
    var temp = document.createElement("div");
    temp.innerHTML = markupStr;
    return temp.innerHTML;
}

大多数浏览器都会尝试修复损坏的标记,因此在设置后立即检索innerHTML属性时,该值将是一个“固定”标记字符串。

所以给出了这个输入

cleanMarkup("<div></div> <div id='unclosed'>test!")

该功能应该返回

<div></div> <div id="unclosed">test!</div>