【问题标题】:How to restrict html tag attribute validation?如何限制html标签属性验证?
【发布时间】:2020-05-06 10:25:17
【问题描述】:

您好,已创建如下 html 元素:

var element = document.createElement('div');
element.innerHTML = `<img src="fail" onerror="alert();" />`;
element.setAttribute('id', 'check');
document.body.append(element);

// removed element from DOM
 element.parentNode.removeChild(element);

当您运行此代码时,您将看到如下控制台错误:

GET https://stacksnippets.net/fail 404(未找到)

有解决此控制台错误的建议吗?

【问题讨论】:

  • 是的,请提供有效的图片网址。您正在尝试从 stacksnippets.net/fail 加载不存在的图像 (404),因此浏览器正在为您打印该错误。为图像标签提供有效的 src 属性。
  • 这就是我的情况,innerhtml 将推迟。我只是创建新元素并清理 html 字符串然后发送到另一个方法。参考以下:stackoverflow.com/questions/61591222/…
  • 除非使用有效的图片 url,否则无法防止 404 错误

标签: javascript html appendchild removechild


【解决方案1】:

我在下面尝试了 lke 并解决了我的 pblm

 private static removeElement(): void {
         // Removes an element's attibute to avoid html tag validation
         let nodes: HTMLCollection = this.wrapElement.children;
         for (let j: number = 0; j < nodes.length; j++) {
             let attribute: NamedNodeMap = nodes[j].attributes;
             for (let i: number = 0; i < attribute.length; i++) {
                 this.wrapElement.children[j].removeAttribute(attribute[i].localName);
             }
         }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2013-03-14
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    相关资源
    最近更新 更多