Bagaimana saya bisa meminta download untuk pengguna ketika mereka mengklik link.
Misalnya, alih-alih:
<a href="uploads/file.doc">Download Here</a>
Saya bisa menggunakan:
<a href="#">Download Here</a>
$('a').click... //Some jquery to download the file
Dengan cara ini, Google tidak mengindeks file HREF dan pribadi saya.
Bisakah ini dilakukan dengan jQuery, jika demikian, bagaimana? Atau haruskah ini dilakukan dengan PHP atau sebaliknya?
Jawaban:
Saya mungkin menyarankan ini, sebagai solusi merendahkan yang lebih anggun, menggunakan
preventDefault
:Meskipun tidak ada Javascript, setidaknya dengan cara ini pengguna akan mendapatkan umpan balik.
sumber
Jika Anda tidak ingin mesin telusur mengindeks file tertentu, Anda dapat menggunakan robots.txt untuk memberi tahu spider web agar tidak mengakses bagian tertentu dari situs web Anda.
Jika Anda hanya mengandalkan javascript, beberapa pengguna yang menjelajah tanpa javascript tidak akan dapat mengeklik tautan Anda.
sumber
robots.txt
tidak akan membantu karena akan tetap disimpan di riwayat browser dan server perantara.Berikut artikel bagus yang menunjukkan banyak cara menyembunyikan file dari mesin pencari:
JavaScript bukanlah cara yang baik untuk tidak mengindeks halaman; itu tidak akan mencegah pengguna untuk menautkan langsung ke file Anda (dan dengan demikian mengungkapkannya kepada perayap), dan seperti yang disebutkan Rob, tidak akan berfungsi untuk semua pengguna.
Perbaikan yang mudah adalah dengan menambahkan
rel="nofollow"
atribut, meskipun sekali lagi, ini tidak lengkap tanpa robots.txt.sumber
Ya, Anda harus mengubah window.location.href ke url file yang ingin Anda unduh.
sumber
sumber
$('blah').each(function(){ $('body').append('<a href="'+xxx+'" download="'+dynamicname+'" />'); }) $('a').trigger('click');
saya menggunakan itu.Menggunakan fungsi jQuery
sumber
Dengan menyatakan
window.location.href = 'uploads/file.doc';
Anda menunjukkan di mana Anda menyimpan file Anda. Anda tentu saja dapat menggunakan .htacess untuk memaksa perilaku yang diperlukan untuk file yang disimpan, tetapi ini mungkin tidak selalu berguna ....Lebih baik membuat file php sisi server dan menempatkan konten ini di dalamnya:
Kode ini akan mengembalikan file APA PUN sebagai unduhan tanpa menunjukkan di mana Anda sebenarnya menyimpannya.
Anda membuka file php ini melalui
window.location.href = 'scripts/this_php_file.php?f=downloaded_file';
sumber
Iframe tersembunyi dapat membantu
sumber
Saya sarankan Anda menggunakan acara mousedown, yang disebut SEBELUM acara klik. Dengan begitu, browser menangani peristiwa klik secara alami, yang menghindari keanehan kode:
sumber
Lihat di sini untuk posting serupa tentang menggunakan jQuery untuk menghapus formulir: Mengatur ulang formulir multi-tahap dengan jQuery
Anda mungkin juga mengalami masalah di mana nilai sedang diisi kembali oleh tumpukan nilai struts. Dengan kata lain, Anda mengirimkan formulir Anda, melakukan apa pun di kelas tindakan, tetapi tidak menghapus nilai bidang terkait di kelas tindakan. Dalam skenario ini, formulir akan muncul untuk mempertahankan nilai yang Anda kirimkan sebelumnya. Jika Anda mempertahankan ini dalam beberapa cara, cukup kosongkan setiap nilai bidang di kelas tindakan Anda setelah bertahan dan sebelum mengembalikan SUCCESS.
sumber