Rumah  >  Artikel  >  hujung hadapan web  >  Bolehkah JavaScript Mengakses Sifat CSS Tersuai dengan Nama Tidak Sah?

Bolehkah JavaScript Mengakses Sifat CSS Tersuai dengan Nama Tidak Sah?

Barbara Streisand
Barbara Streisandasal
2024-10-24 07:07:02137semak imbas

Can JavaScript Access Custom CSS Properties with Invalid Names?

Mengakses Sifat CSS Tersuai Tidak Sah daripada JavaScript

Adalah mungkin untuk mencipta sifat CSS tersuai menggunakan awalan -. Walau bagaimanapun, bolehkah sifat tersuai ini boleh diakses daripada JavaScript?

Malangnya jawapannya tidak, sekurang-kurangnya dalam penyemak imbas utama seperti Chrome dan Firefox. Sifat CSS tersuai dengan nama yang tidak sah hanya diabaikan oleh penghurai CSS. Sebagai contoh, pertimbangkan CSS berikut:

<code class="css">div {
    -my-foo: 42;
}</code>

Walaupun CSS ini digunakan pada div, percubaan untuk mengakses sifat -my-foo menggunakan JavaScript tidak akan mengembalikan apa-apa. Objek CSSStyleDeclaration hanya akan mengandungi sifat yang sah, seperti lebar atau tinggi.

Tingkah laku ini mengikut spesifikasi CSSStyleDeclaration. Spesifikasi menyatakan bahawa objek hanya perlu menyertakan "sifat yang ditentukan", yang membayangkan bahawa sifat tersuai tidak dikenali. Walau bagaimanapun, sesetengah pelaksanaan mungkin menyokong akses sifat tersuai, tetapi ini tidak dijamin.

Jika mengakses sifat CSS tersuai adalah penting untuk aplikasi anda, anda boleh memintas pengehadan JavaScript dengan menghuraikan teks CSS mentah. Ini boleh dilakukan menggunakan sifat innerText bagi elemen gaya:

<code class="js">document.getElementsByTagName("style")[0].innerText</code>

Walaupun pendekatan ini berfungsi, ia tidak semudah mengakses sifat terus daripada objek CSSStyleDeclaration. Selain itu, ia memerlukan penghuraian dan manipulasi tambahan teks CSS.

Atas ialah kandungan terperinci Bolehkah JavaScript Mengakses Sifat CSS Tersuai dengan Nama Tidak Sah?. 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