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?
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?
Jawaban:
Browser yang berbeda memperlakukan ini secara berbeda. Beberapa menjalankan konten hanya jika srcdisertakan tanpa kesalahan. Beberapa menjalankannya setelah mencoba memasukkan srcskrip, 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 scripttag itu sendiri, dan menyesuaikan perilakunya berdasarkan itu.
srcatributnya ada, dan sebenarnya bukan literal objek, kode itu akan menghasilkan SyntaxErrorjika 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.
Menurut spesifikasi draf HTML5 , <script>elemen dengan srcatribut hanya boleh memiliki kode komentar, yang dimaksudkan untuk memberikan dokumentasi untuk skrip. Tampaknya Google tidak memenuhi spesifikasi ini.
Setelah skrip dimuat, ia melihat ke dalam tag skripnya sendiri untuk mengakses kontennya.
Ini akan menggunakan beberapa kode yang mirip dengan ini:
var scripts = document.getElementsByTagName("script");
var data = eval(scripts[scripts.length - 1].innerHTML);
Atas kebaikan John Resig .