google 闭包库 sanitizer.sanitize 删除了我在 dom 元素上的 id
google closure library sanitizer.sanitize removes my id on dom elements
我正在使用 goog.dom.safeHtmlToNode
动态更新包含内容的选项卡
由于 google 闭包库的较新版本删除了 dom 片段方法:goog.dom.htmlToDocumentFragment(htmlString)。
消毒剂从 dom 元素中删除了我的 "id=xyz"。例如:
'<input type="email" id="openid" name="openid" size="20" style="font-size: 18px" />'
变成
'<input type="email" size="20" style="font-size: 18px;" />'
我正在使用 id 从这些元素中获取用户输入的内容。 如何告诉消毒剂不要删除这些属性?我尝试了以下代码但没有成功:
var sanitizer =
new goog.html.sanitizer.HtmlSanitizer.Builder()
.withCustomNetworkRequestUrlPolicy(goog.html.SafeUrl.sanitize)
.allowCssStyles()
.allowFormTag()
.addOriginalTagNames()
.allowDataAttributes([ "data-id","data-name" ]) //data-* attributes are inert as per HTML5 specs
.build();
goog.dom.safeHtmlToNode( sanitizer.sanitize (htmlString) );
我也试过将我的 "id" 重命名为 "data-id",该字符串仍然从经过清理的输出中删除。
Thank you in advance for your help on this matter.
这是您通过 online closure compiler
作为测试用例的示例
我刚刚在 .allowDataAttributes([ "id","data-id" ])
中添加了 "id" 和 "data-id" 作为值。
如果您编译 "Advanced mode" 中的示例并将结果粘贴到控制台中,您将看到 "id" 和 "data-id" 在那里。
这会将令牌策略更改为允许所有而不是允许 none。令牌策略用于 ID 和 CLASS 属性,因此这应该允许您保留您的 ID 属性。
.withCustomTokenPolicy(goog.functions.identity)
我正在使用 goog.dom.safeHtmlToNode
动态更新包含内容的选项卡由于 google 闭包库的较新版本删除了 dom 片段方法:goog.dom.htmlToDocumentFragment(htmlString)。
消毒剂从 dom 元素中删除了我的 "id=xyz"。例如:
'<input type="email" id="openid" name="openid" size="20" style="font-size: 18px" />'
变成
'<input type="email" size="20" style="font-size: 18px;" />'
我正在使用 id 从这些元素中获取用户输入的内容。 如何告诉消毒剂不要删除这些属性?我尝试了以下代码但没有成功:
var sanitizer =
new goog.html.sanitizer.HtmlSanitizer.Builder()
.withCustomNetworkRequestUrlPolicy(goog.html.SafeUrl.sanitize)
.allowCssStyles()
.allowFormTag()
.addOriginalTagNames()
.allowDataAttributes([ "data-id","data-name" ]) //data-* attributes are inert as per HTML5 specs
.build();
goog.dom.safeHtmlToNode( sanitizer.sanitize (htmlString) );
我也试过将我的 "id" 重命名为 "data-id",该字符串仍然从经过清理的输出中删除。
Thank you in advance for your help on this matter.
这是您通过 online closure compiler
作为测试用例的示例我刚刚在 .allowDataAttributes([ "id","data-id" ])
中添加了 "id" 和 "data-id" 作为值。
如果您编译 "Advanced mode" 中的示例并将结果粘贴到控制台中,您将看到 "id" 和 "data-id" 在那里。
这会将令牌策略更改为允许所有而不是允许 none。令牌策略用于 ID 和 CLASS 属性,因此这应该允许您保留您的 ID 属性。
.withCustomTokenPolicy(goog.functions.identity)