Apa saja perbedaan antara atribut src dan data-src?

102

Apa perbedaan dan konsekuensi (baik dan buruk) dari penggunaan salah satu data-srcatau srcatribut imgtag? Bisakah saya mencapai hasil yang sama dengan menggunakan keduanya? Jika demikian, kapan harus digunakan masing-masing?

Adam Pierzchała
sumber

Jawaban:

174

Atribut srcdan data-srctidak memiliki kesamaan, kecuali keduanya diizinkan oleh HTML5 CR dan keduanya berisi huruf src. Segala sesuatu yang lain berbeda.

The srcatribut didefinisikan dalam spesifikasi HTML, dan memiliki makna fungsional.

The data-srcatribut hanyalah salah satu dari himpunan tak terbatas data-*atribut, yang ada telah didefinisikan arti tetapi dapat digunakan untuk memasukkan data yang tidak terlihat dalam sebuah elemen, untuk digunakan dalam scripting (atau styling).

Jukka K. Korpela
sumber
1
Angular.js juga menggunakan data-src untuk pengikatan url yang terlambat berdasarkan model
Jeff
Terima kasih atas jawaban yang jelas :) baru saja akan menggunakan jQuery.lazy dan tidak yakin apa yang terjadi dengan scr
Timothy
19

Jika Anda ingin gambar memuat dan menampilkan gambar tertentu, gunakan .srcuntuk memuat URL gambar itu.

Jika Anda menginginkan sepotong data meta (pada tag apa pun) yang dapat berisi URL, gunakan data-srcatau apa pun data-xxxyang ingin Anda pilih.

Dokumentasi MDN pada atribut data-xxxx: https://developer.mozilla.org/en-US/docs/DOM/element.dataset

Contoh srcpada tag gambar di mana gambar memuat JPEG untuk Anda dan menampilkannya:

<img id="myImage" src="http://mydomain.com/foo.jpg">

<script>
    var imageUrl = document.getElementById("myImage").src;
</script>

Contoh 'data-src' pada tag non-gambar yang gambarnya belum dimuat - ini hanya sebagian dari meta data pada tag div:

<div id="myDiv" data-src="http://mydomain.com/foo.jpg">

<script>
    // in all browsers
    var imageUrl = document.getElementById("myDiv").getAttribute("data-src");

    // or in modern browsers
    var imageUrl = document.getElementById("myDiv").dataset.src;
</script>

Contoh data-srcpada tag gambar yang digunakan sebagai tempat untuk menyimpan URL dari gambar alternatif:

<img id="myImage" src="http://mydomain.com/foo.jpg" data-src="http://mydomain.com/foo.jpg">

<script>
    var item = document.getElementById("myImage");
    // switch the image to the URL specified in data-src
    item.src = item.dataset.src;
</script>
jfriend00
sumber
4

Yang pertama <img />tidak valid - srcadalah atribut wajib. data-srcadalah atribut yang dapat dimanfaatkan oleh, katakanlah, JavaScript, tetapi tidak memiliki arti presentasi.

Tieson T.
sumber
3
@ AdamPierzchała Intinya sama - tidak ada "salah satu / atau" untuk pertanyaan ini; srcharus dimasukkan. Anda menggunakan data-atribut untuk menambahkan data tambahan untuk bahasa skrip (seperti JavaScript) untuk dimanfaatkan.
Tieson T.
4

Atribut data-src adalah bagian dari kumpulan atribut data- * yang diperkenalkan di HTML5. data-src memungkinkan kita menyimpan data tambahan yang tidak ada artinya bagi browser tetapi dapat digunakan oleh Kode Javascript atau aturan CSS.

ElomSkillupsoft
sumber