不,白名单是硬编码的,无法调整。但是,该class
属性在白名单中,应该保留,您可能是指该style
属性?如果您需要自定义行为,则必须使用不同的解决方案(例如可以在 Firefox 12 中解析 HTML 文档的DOMParser )。
对于较旧的 Firefox 版本,您可以在DOMParser
那里解析 XHTML 数据。如果你真的有 HTML,那么我只知道一种解析它的方法,而不立即将它插入到文档中(这可能会导致各种安全问题):range.createContextualFragment()。你需要一个 HTML 文档,如果你没有的话——隐藏<iframe>
加载about:blank
也可以。下面是它的工作原理:
// Get the HTML document
var doc = document.getElementById("dummyFrame").contentDocument;
// Parse data
var fragment = doc.createRange().createContextualFragment(htmlData);
// Sanitize it
sanitizeData(fragment);
在这里清理数据是您自己的责任。您可能希望根据我上面链接到的 Mozilla 白名单进行清理 - 删除不在该列表中的所有标签和属性,还要确保检查链接。该style
属性是一种特殊情况:它曾经是不安全的,但恕我直言,不再提供-moz-binding
网络不再支持。