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!