Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mendapatkan Nilai Sifat CSS Tidak Sah/Tersuai dalam JavaScript?

Bagaimana untuk Mendapatkan Nilai Sifat CSS Tidak Sah/Tersuai dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-10-24 07:12:30334semak imbas

How to Retrieve Values of Invalid/Custom CSS Properties in JavaScript?

Mengakses Nilai Sifat CSS Tidak Sah/Tersuai dalam JavaScript

Apabila mentakrifkan sifat CSS tersuai atau tidak sah seperti "-my-foo", pembangun mungkin tertanya-tanya sama ada mungkin untuk mendapatkan semula nilainya daripada JavaScript.

Untuk menjawab soalan ini, mari andaikan kita mempunyai CSS seperti yang ditunjukkan di bawah:

div {
    -my-foo: 42;
}

Percubaan untuk mengakses nilai "-my -foo" daripada JavaScript melalui objek CSSStyleDeclaration mungkin mengakibatkan kesukaran. Ujian dalam Chrome dan Firefox menunjukkan bahawa penyemak imbas ini melangkau sifat yang tidak sah dan hanya mendedahkan yang sah. Sebagai contoh, dengan CSS seperti:

div {
    width: 100px;
    -my-foo: 25px;
}

objek CSSStyleDeclaration hanya akan mengandungi kunci berikut:

0: width
cssText: "width: 100px"
length: 1

Oleh itu, mendapatkan nilai "-my-foo" daripada JavaScript menggunakan kaedah ini tidak boleh dilaksanakan.

Walau bagaimanapun, spesifikasi Gaya DOM-Level-2 menyatakan bahawa "pelaksanaan [pelayar] dijangka memberikan akses kepada semua sifat yang ditentukan... melalui antara muka CSSStyleDeclaration." Ini menunjukkan bahawa penyemak imbas secara teorinya harus menyenaraikan sifat tidak sah dalam objek, walaupun mereka tidak mengenalinya.

Sebagai penyelesaian, adalah mungkin untuk menghuraikan teks CSS mentah untuk mendapatkan semula nilai sifat tersuai. Walau bagaimanapun, pendekatan ini tidak disyorkan kerana ia melibatkan usaha yang ketara dan mungkin tidak selalu boleh dipercayai atau cekap.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Sifat CSS Tidak Sah/Tersuai dalam JavaScript?. 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