Saya telah berada di "sumber tampilan" foya akhir-akhir ini di situs web dengan desain dan konten yang menarik. Salah satu situs web itu, Squarespace , memiliki blok <script>
tag di dalam <noscript>
tag, seperti:
<!-- Page is at: http://squarespace.com -->
...
...
<noscript id="inline-deps">
<link rel="stylesheet" type="text/css" href="//cloud.typography.com/7811972/758964/css/fonts.css" />
<script type="text/javascript" src="https://static.squarespace.com/static/ta/5134cbefe4b0c6fb04df8065/7400/assets/logomark/logomark.min.js?37"></script>
<link rel="stylesheet" href="https://static.squarespace.com/static/ta/5134cbefe4b0c6fb04df8065/7400/assets/logomark/logomark.min.css?37" type="text/css" />
</noscript>
...
...
Itu mengejutkan saya, dan membuat saya mencari info di Google untuk melihat apakah ada semacam fungsi / tujuan tersembunyi untuk HTML yang aneh, tetapi tidak berhasil. Apakah ada semacam tujuan untuk memiliki <script>
tag di dalam <noscript>
elemen, atau apakah ini hanya contoh HTML yang buruk?
javascript
html
noscript
Agent.Logic_
sumber
sumber
<base href="">
,<meta … />
,<title>
dan<link … />
unsur-unsur) sepertinya mereka menyalahgunakan<noscript>
untuk template.Jawaban:
Saya melakukan beberapa pencarian melalui kode mereka dan menemukan potongan ini (saya sudah membersihkannya agar lebih mudah dibaca):
Seperti yang Anda lihat,
<noscript>
tag memiliki ID#inline-deps
, yang direferensikan dalam kode (baris 3) untuk memuat dependensi secara tidak sinkron dan sesuai permintaan.Mereka mungkin menggunakan
<noscript>
elemen karena memungkinkan mereka untuk secara langsung mengakses elemen DOM, daripada harus menempatkannya dalam string atau komentar (yang saya anggap sangat buruk, karena komentar tidak dimaksudkan untuk informasi aktual) dan kemudian menguraikannya. Ini juga mencegah pelaksanaan skrip dan gaya CSS hingga dimuat secara khusus.Saya pribadi menemukan ini penyalahgunaan
<noscript>
tag. Saya bahkan tidak yakin apakah itu kode HTML5 yang valid. Menggunakan metode lain seperti mendeklarasikan dependensi dalam objek JavaScript dengan skrip loader harus digunakan jika memungkinkan.sumber
<script type="text/html">...</script>
digunakan untuk tujuan yang sama - ada yang mendapat pro / kontra dari keduanya?<noscript>
akan terlihat oleh pengguna non-JavaScript; sebagian besar situs tidak mendukung pengguna tersebut, tetapi Anda juga ingin menunjukkan pesan penjelasan sederhana kepada mereka.