Contoh dari tombol +1 Google:
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{"parsetags": "explicit"}
</script>
Tag script memiliki src-Atribut dan konten. Apa artinya ini dan bagaimana cara kerjanya?
javascript
usr
sumber
sumber
Jawaban:
Browser yang berbeda memperlakukan ini secara berbeda. Beberapa menjalankan konten hanya jika
src
disertakan tanpa kesalahan. Beberapa menjalankannya setelah mencoba memasukkansrc
skrip, terlepas dari keberhasilannya. Karena perilaku ini tidak dapat diandalkan (dan dilarang di HTML5 ), ini harus dihindari.Google tidak mengandalkan perilaku tertentu. Karena konten hanyalah sebuah objek literal (nilai), mengeksekusinya tidak akan benar-benar melakukan apa pun kecuali menyebabkan kesalahan diam. Kode Google melihat konten
script
tag itu sendiri, dan menyesuaikan perilakunya berdasarkan itu.sumber
src
atributnya ada, dan sebenarnya bukan literal objek, kode itu akan menghasilkanSyntaxError
jika dijalankan, hanya "teks JSON" yang akan digunakan skrip dengan sendirinya nanti.s=document.getElementsByTagName('script'); text = s[s.length-1].innerHTML;
Saya rasa tidak ada cara untuk mengambil konten dari simpul skrip yang tidak melibatkan menyentuh DOM .Jika elemen skrip memiliki atribut src , konten harus diabaikan, perilaku lainnya tidak sesuai.
Ia telah mengemukakan di blog (sebagai hack) untuk menempatkan konten dalam elemen mengetahui bahwa itu tidak akan dievaluasi, kemudian menggunakan metode DOM untuk mendapatkan konten sebagai string dan baik eval atau masukkan dalam elemen script baru. Tak satu pun dari ini adalah ide yang bagus.
sumber
Menurut spesifikasi draf HTML5 ,
<script>
elemen dengansrc
atribut hanya boleh memiliki kode komentar, yang dimaksudkan untuk memberikan dokumentasi untuk skrip. Tampaknya Google tidak memenuhi spesifikasi ini.sumber
Setelah skrip dimuat, ia melihat ke dalam tag skripnya sendiri untuk mengakses kontennya.
Ini akan menggunakan beberapa kode yang mirip dengan ini:
Atas kebaikan John Resig .
sumber