Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menentukan dengan pasti sama ada Objek JavaScript ialah Elemen DOM?

Bagaimana untuk menentukan dengan pasti sama ada Objek JavaScript ialah Elemen DOM?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-27 07:08:03566semak imbas

How to Reliably Determine if a JavaScript Object is a DOM Element?

Cara Menentukan Status Objek DOM dalam JavaScript

Dalam JavaScript, membezakan antara objek DOM (Model Objek Dokumen) dan objek JavaScript biasa adalah penting untuk operasi tertentu. Walaupun pendekatan tradisional untuk menyemak sifat tagName berfungsi dalam kebanyakan kes, ia boleh gagal dalam sesetengah penyemak imbas yang tidak menguatkuasakan sifat baca sahaja.

Penyelesaian Komprehensif

Untuk menangani isu ini, pertimbangkan fungsi berikut:

<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>

Kod ini memanfaatkan W3 DOM2 untuk penyemak imbas yang disokong dan menyemak sifat tertentu dalam penyemak imbas bukan DOM2.

Pilihan Tambahan

Pendekatan lain ialah menggunakan kod berikut:

<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>

Kod ini membezakan antara nod dan elemen DOM, menangani potensi perbezaan dalam pelaksanaan penyemak imbas.

Atas ialah kandungan terperinci Bagaimana untuk menentukan dengan pasti sama ada Objek JavaScript ialah Elemen DOM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn