Rumah > Artikel > hujung hadapan web > Uji keserasian pelayar IE dengan AngularJS_AngularJS JavaScript
Versi pendek
Untuk memastikan aplikasi Angular boleh berfungsi pada IE sila sahkan:
1. Polyfill JSON.stringify pada IE7 atau lebih awal. Anda boleh menggunakan JSON2 atau JSON3 untuk polyfill.
<!doctype html> <html xmlns:ng="http://angularjs.org"> <head> <!--[if lte IE 7]> <script src="/path/to/json2.js"></script> <![endif]--> </head> <body> ... </body> </html>
2. Tambahkan id="ng-app" pada elemen akar pada titik sambungan dan gunakan atribut ng-app
<!doctype html> <html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="optionalModuleName"> ... </html>
3. Anda tidak boleh menggunakan teg unsur tersuai seperti cbe1678e5ddae3bab5a303561ac9ed86 (gunakan versi atribut 08c7689d8bf8fe33141f270e3fd6c1d5) atau
4 Jika anda mesti menggunakan tag elemen tersuai, maka anda mesti mengambil langkah berikut untuk memastikan bahawa IE8 dan versi terdahulu boleh digunakan:
<!doctype html> <html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="optionalModuleName"> <head> <!--[if lte IE 8]> <script> document.createElement('ng-include'); document.createElement('ng-pluralize'); document.createElement('ng-view'); // Optionally these for CSS document.createElement('ng:include'); document.createElement('ng:pluralize'); document.createElement('ng:view'); </script> <![endif]--> </head> <body> ... </body> </html>
5. Gunakan teg gaya ng bukannya style="{{ someCss }}". Versi seterusnya akan berfungsi di bawah Chrome dan Firefox tetapi bukan versi IE
Bahagian penting ialah:
Maklumat versi
IE mempunyai banyak masalah dengan elemen tag bukan standard. Masalah ini boleh dibahagikan kepada dua kategori yang luas, masing-masing mempunyai penyelesaiannya sendiri.
Berita baik
Apa yang akan berlaku jika saya tidak melakukannya?
<html> <body> <mytag>some text</mytag> </body> </html>
harus menghuraikan DOM berikut:
#document +- HTML +- BODY +- mytag +- #text: some text
Tetapi ini tidak berlaku dalam IE (jika semakan di atas tidak disertakan)
#document +- HTML +- BODY +- mytag +- #text: some text +- /mytag
1, teg saya yang menutup sendiri. Contohnya, teg penutup sendiri 076402276aae5dbec7f672f8f4e5cc81. / adalah pilihan, tetapi teg 0c6dc11e160d3b678d68754cc175188a tidak dibenarkan untuk mempunyai elemen kanak-kanak.
2, nod teks beberapa teks. Dalam perkara di atas, ini sepatutnya elemen kanak-kanak mytag, bukan tag adik beradik
3. Penutupan diri yang rosak /mytag. Ini adalah elemen yang rosak kerana / aksara tidak dibenarkan dalam nama elemen. Selain itu, elemen sub-tertutup ini bukan sebahagian daripada DOM, ia hanya digunakan untuk menerangkan struktur DOM.
penamaan teg tersuai gaya CSS
Untuk memastikan pemilih CSS boleh berfungsi pada elemen tersuai, nama elemen tersuai mesti dibuat terlebih dahulu menggunakan document.createElement('my-tag'), tanpa mengira ruang nama XML.
<html xmlns:ng="needed for ng: namespace"> <head> <!--[if lte IE 8]> <script> // 需要确认ng-include被正常解析 document.createElement('ng-include'); // 需求启用CSS引用 document.createElement('ng:view'); </script> <![endif]--> <style> ng\:view { display: block; border: 1px solid red; } ng-include { display: block; border: 1px solid blue; } </style> </head> <body> <ng:view></ng:view> <ng-include></ng-include> ... </body> </html>