如何在 JavaScript 中确定 DOM 对象状态
在 JavaScript 中,区分 DOM(文档对象模型)对象和常规 JavaScript 对象至关重要对于某些操作。虽然检查 tagName 属性的传统方法在大多数情况下都有效,但在某些不强制执行只读属性的浏览器中可能会失败。
综合解决方案
要解决此问题,请考虑以下函数:
<code class="javascript">function isElement(obj) { try { // W3 DOM2 (works for FF, Opera, and Chrome) return obj instanceof HTMLElement; } catch (e) { // Non-DOM2 browsers return ( typeof obj === 'object' && obj.nodeType === 1 && typeof obj.style === 'object' && typeof obj.ownerDocument === 'object' ); } }</code>
此代码利用 W3 DOM2 来支持受支持的浏览器,并检查非 DOM2 浏览器中的特定属性。
其他选项
另一种方法是使用以下代码:
<code class="javascript">function isNode(o) { return typeof Node === 'object' ? o instanceof Node : o && typeof o === 'object' && typeof o.nodeType === 'number' && typeof o.nodeName === 'string'; } function isElement(o) { return typeof HTMLElement === 'object' ? o instanceof HTMLElement : o && typeof o === 'object' && o !== null && o.nodeType === 1 && typeof o.nodeName === 'string'; }</code>
此代码区分 DOM 节点和元素,解决浏览器实现中的潜在差异。
以上是如何可靠地确定 JavaScript 对象是否是 DOM 元素?的详细内容。更多信息请关注PHP中文网其他相关文章!