Saya ingin membuat sedikit kode JS yang membuat elemen gambar di latar belakang dan tidak menampilkan apa pun. Elemen gambar akan memanggil URL pelacakan (seperti Omniture) dan harus sederhana dan kuat serta hanya berfungsi di IE 6 = <. Ini kode yang saya miliki:
var oImg = document.createElement("img");
oImg.setAttribute('src', 'http://www.testtrackinglink.com');
oImg.setAttribute('alt', 'na');
oImg.setAttribute('height', '1px');
oImg.setAttribute('width', '1px');
document.body.appendChild(oImg);
Apakah ini cara yang paling sederhana tetapi paling kuat (bebas kesalahan) untuk melakukannya?
Saya tidak dapat menggunakan kerangka kerja seperti jQuery. Ini harus dalam JavaScript biasa.
javascript
dhtml
Pete
sumber
sumber
Jawaban:
px
hanya untuk CSS. Gunakan salah satu:untuk mengatur lebar melalui HTML, atau:
untuk mengaturnya melalui CSS.
Perhatikan bahwa versi lama IE tidak membuat gambar yang tepat dengan
document.createElement()
, dan versi lama KHTML tidak membuat Node DOM yang tepatnew Image()
, jadi jika Anda ingin sepenuhnya kompatibel dengan mundur, gunakan sesuatu seperti:Berhati-hatilah juga
document.body.appendChild
jika skrip mungkin dijalankan saat halaman sedang dimuat. Anda bisa mendapatkan gambar di tempat yang tidak terduga, atau kesalahan JavaScript yang aneh di IE. Jika Anda harus dapat menambahkannya pada saat pemuatan (tetapi setelah<body>
elemen dimulai), Anda dapat mencoba memasukkannya di awal badan menggunakanbody.insertBefore(body.firstChild)
.Untuk melakukan ini tanpa terlihat tetapi masih memiliki gambar yang benar-benar dimuat di semua browser, Anda dapat memasukkan benar-benar-off-halaman-halaman
<div>
sebagai anak pertama tubuh dan meletakkan gambar pelacakan / pramuat yang Anda tidak ingin terlihat di sana .sumber
new Image()
bekerja paling baik dalam segala keadaan?sumber
sumber
console.log
antara setiap pasang garis, jadi Anda akan tahu persis garis mana yang membekukannya.jQuery:
Saya telah menemukan bahwa ini bekerja lebih baik karena Anda tidak perlu khawatir tentang HTML yang lolos dari apa pun (yang harus dilakukan dalam kode di atas, jika nilainya tidak dikodekan dengan keras). Ini juga lebih mudah dibaca (dari perspektif JS):
sumber
<img ... />
ke DOM, lakukan dengan innerHTML . Saya tidak mengerti ini: /Hanya demi kelengkapan, saya menyarankan untuk menggunakan cara InnerHTML juga - meskipun saya tidak akan menyebutnya sebagai cara terbaik ...
Omong-omong, innerHTML tidak seburuk itu
sumber
Cara terpendek:
sumber
Apakah Anda diizinkan menggunakan kerangka kerja? jQuery dan Prototype membuat hal semacam ini menjadi sangat mudah. Berikut contoh dalam Prototipe:
sumber
Anda cukup melakukan:
Sederhana :)
sumber
Hanya untuk menambahkan contoh JS html lengkap
sumber
Seperti yang ditunjukkan orang lain jika Anda diizinkan menggunakan kerangka kerja seperti jQuery, hal terbaik untuk dilakukan adalah menggunakannya, karena kemungkinan besar akan melakukannya dengan cara terbaik. Jika Anda tidak diperbolehkan menggunakan kerangka kerja maka saya kira memanipulasi DOM adalah cara terbaik untuk melakukannya (dan menurut saya, cara yang tepat untuk melakukannya).
sumber
Ini adalah metode yang saya ikuti untuk membuat loop tag img atau satu tag sesuai keinginan Anda
atau
sumber