【问题标题】:How to check if an element is a script [closed]如何检查元素是否是脚本[关闭]
【发布时间】:2013-10-25 17:07:47
【问题描述】:

我正在使用 javascript 从 DOM 中收集一个随机元素。我如何同样检查“如果元素是脚本,做某事”()?

【问题讨论】:

    标签: javascript css html google-chrome


    【解决方案1】:

    有多种方法可以做到这一点,具体取决于您需要的稳健程度。

    如果您只处理 <!DOCTYPE html> 文档的 DOM 元素,那么以下内容就足够了:

    if (el.tagName === 'SCRIPT') {
    }
    

    请注意,由于 el.tagNamenot always guaranteed to be in upper-case 对于您可能需要的所有文档类型:

    if (el.tagName.toUpperCase() === 'SCRIPT') {
    }
    

    如果你不确定你处理的是哪种类型的对象,你仍然可以使用鸭子类型:

    if (el && el.tagName && el.tagName.toUpperCase() === 'SCRIPT') {
    }
    

    或者在现代浏览器中进行更严格的检查:

    if (el instanceof HTMLScriptElement) {
    }
    

    【讨论】:

    • 当不小心将“文档”作为元素检查时,由于缺少“tagName”而触发了错误,我使用了这个Object.getPrototypeOf(element).toString() === "[object HTMLScriptElement]"
    • @ion 更新了答案。
    猜你喜欢
    • 2022-12-08
    • 1970-01-01
    • 2014-09-27
    • 2015-08-25
    • 2012-01-25
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 2021-05-03
    相关资源
    最近更新 更多