【发布时间】:2013-10-25 17:07:47
【问题描述】:
我正在使用 javascript 从 DOM 中收集一个随机元素。我如何同样检查“如果元素是脚本,做某事”()?
【问题讨论】:
标签: javascript css html google-chrome
我正在使用 javascript 从 DOM 中收集一个随机元素。我如何同样检查“如果元素是脚本,做某事”()?
【问题讨论】:
标签: javascript css html google-chrome
有多种方法可以做到这一点,具体取决于您需要的稳健程度。
如果您只处理 <!DOCTYPE html> 文档的 DOM 元素,那么以下内容就足够了:
if (el.tagName === 'SCRIPT') {
}
请注意,由于 el.tagName 是 not always guaranteed to be in upper-case 对于您可能需要的所有文档类型:
if (el.tagName.toUpperCase() === 'SCRIPT') {
}
如果你不确定你处理的是哪种类型的对象,你仍然可以使用鸭子类型:
if (el && el.tagName && el.tagName.toUpperCase() === 'SCRIPT') {
}
或者在现代浏览器中进行更严格的检查:
if (el instanceof HTMLScriptElement) {
}
【讨论】:
Object.getPrototypeOf(element).toString() === "[object HTMLScriptElement]"