Show Saya memiliki persyaratan yang sangat mirip yang ditentukan di sini . Saya harus meminta browser
pengguna memulai pengunduhan secara manual ketika Tetapi saya tidak dapat menggunakan Sebaliknya saya ingin membuka unduhan di jendela / tab baru. Bagaimana ini mungkin? Jawaban: Gunakan yang tidak terlihat
Untuk memaksa browser mengunduh file yang
seharusnya dapat dirender (seperti file HTML atau teks), Anda memerlukan server untuk mengatur Jenis MIME file ke nilai yang tidak masuk akal, seperti Jika Anda hanya ingin membukanya di tab baru, satu-satunya cara untuk melakukan ini adalah bagi pengguna untuk mengklik pada tautan
dengan Di jQuery:
Setiap kali tautan itu diklik, ia akan mengunduh file di tab / jendela baru. 2019 pembaruan browser modern Inilah pendekatan yang sekarang saya rekomendasikan dengan beberapa peringatan:
2012 pendekatan berbasis jQuery / iframe / cookie asli Saya telah membuat plugin Unduhan File jQuery ( Demo ) ( GitHub ) yang juga dapat membantu situasi Anda. Ini berfungsi sangat mirip dengan iframe tetapi memiliki beberapa fitur keren yang menurut saya cukup berguna:
Berikut ini adalah contoh penggunaan sederhana menggunakan sumber plugin dengan janji. The halaman demo mencakup banyak lainnya, 'lebih baik UX' contoh juga.
Periksa apakah browser target Anda akan menjalankan potongan di atas dengan lancar: Saya terkejut tidak banyak orang tahu tentang atribut unduhan untuk suatu elemen. Tolong bantu sebarkan berita tentang itu! Anda dapat memiliki tautan html tersembunyi, dan memalsukan klik di atasnya. Jika tautan html memiliki atribut unduhan, ia mengunduh file, bukan melihatnya, apa pun yang terjadi. Ini kodenya. Ini akan mengunduh gambar kucing jika dapat menemukannya.
Catatan: Ini tidak didukung di semua browser: http://www.w3schools.com/tags/att_a_download.asp Saya sarankan menggunakan yang
Ini akan mengunduh file Anda, tanpa membukanya. Jika Anda sudah menggunakan jQuery, Anda bisa memanfaatkannya untuk menghasilkan potongan yang lebih kecil
Bekerja di Chrome, Firefox, dan IE8 dan di atasnya.
Contoh sederhana menggunakan
Kemudian panggil saja fungsi di mana pun Anda inginkan:
Ini bisa membantu jika Anda tidak perlu menavigasi halaman lain. Ini adalah fungsi dasar javascript, sehingga dapat digunakan di platform mana pun di mana backend berada dalam Javascript
Hanya tujuh tahun kemudian di sini datang solusi jQuery satu baris menggunakan formulir, bukan iframe atau tautan:
Saya sudah menguji ini
Jika ada yang tahu ada kerugian dengan solusi ini saya akan sangat senang mendengarnya. Demo penuh:
Saya tidak tahu apakah pertanyaannya terlalu lama, tetapi pengaturan window.lokasi ke url unduhan akan berfungsi, asalkan tipe unduhan mime benar (misalnya arsip zip).
Saya akhirnya menggunakan potongan di bawah ini dan berfungsi di sebagian besar browser, tidak diuji di IE sekalipun.
Memperbarui
Untuk meningkatkan jawaban Imagine Breaker, ini didukung pada FF & IE:
Dengan kata lain, cukup gunakan Mungkin javascript Anda hanya membuka halaman yang baru saja mengunduh file, seperti saat Anda menyeret tautan unduhan ke tab baru:
Dengan jendela yang terbuka, buka halaman unduhan yang otomatis ditutup. Kode Paling Lengkap dan Berfungsi (Diuji) untuk Mengunduh Data Untuk FireFox, Chrome dan Kode IE adalah Mengikuti. Asumsikan bahwa Data berada dalam bidang texarea , yang memiliki id = 'textarea_area' dan nama file adalah nama file tempat data akan diunduh.
dan kemudian panggil saja
Untuk Memulai Pengunduhan. Array untuk pengaturan tipe MIME yang benar untuk dialog unduhan DAPAT mengikuti:
bagi saya ini berfungsi ok diuji di chrome v72
Saya memiliki hasil yang baik dengan menggunakan tag FORMULIR karena ia bekerja di mana-mana dan Anda tidak perlu membuat file sementara di server. Metodenya bekerja seperti ini. Di sisi klien (halaman HTML) Anda membuat formulir yang tidak terlihat seperti ini
Kemudian Anda menambahkan kode Javascript ini ke tombol Anda:
Di sisi server Anda memiliki kode PHP berikut
Anda bahkan dapat membuat file zip data Anda seperti ini:
Bagian terbaiknya adalah tidak meninggalkan file residu di server Anda karena semuanya dibuat dan dihancurkan dengan cepat! Jawaban yang diajukan oleh hitesh pada 30 Desember '13 ternyata bekerja. Itu hanya membutuhkan sedikit penyesuaian: File PHP dapat memanggil dirinya sendiri. Dengan kata lain, cukup buat file bernama saveAs.php, dan masukkan kode ini ke dalamnya ...
Fungsi-fungsi ini digunakan di stacktrace.js :
Saya sarankan Anda menggunakan acara mousedown, yang disebut SEBELUM acara klik. Dengan begitu, browser menangani acara klik secara alami, yang menghindari keanehan kode:
Solusi Excelent dari Corbacho, saya baru saja beradaptasi untuk menyingkirkan var
Firefox dan Chrome diuji:
Ini sebenarnya adalah solusi cara "chrome" untuk firefox (saya tidak mengujinya di browser lain, jadi silakan tinggalkan komentar tentang kompilabilitas) Ada begitu banyak hal kecil yang dapat terjadi ketika mencoba mengunduh file. Ketidakkonsistenan antara browser saja adalah mimpi buruk. Saya akhirnya menggunakan perpustakaan kecil yang hebat ini. https://github.com/rndme/download Yang menyenangkan tentang itu adalah fleksibel untuk tidak hanya url tetapi untuk data sisi klien yang ingin Anda unduh.
Menggunakan tag jangkar dan PHP itu bisa dilakukan, Periksa jawaban ini JQuery Ajax call untuk mengunduh file PDF
Saya memeriksa ukuran file karena jika Anda memuat pdf dari CDN cloudfront, Anda tidak akan mendapatkan ukuran dokumen yang memaksa dokumen untuk mengunduh dalam 0kb, Untuk menghindari hal ini saya memeriksa dengan kondisi ini
Saya tahu saya terlambat ke pesta, tetapi saya ingin membagikan solusi saya yang merupakan variasi dari solusi Imagine Breaker di atas. Saya mencoba menggunakan solusinya, karena solusinya tampaknya paling sederhana dan mudah bagi saya. Tapi seperti kata yang lain, itu tidak bekerja untuk beberapa browser, jadi saya menaruh beberapa variasi di atasnya dengan menggunakan jquery. Semoga ini bisa membantu seseorang di luar sana.
Catatan: Tidak didukung di semua browser. Saya sedang mencari cara untuk mengunduh file menggunakan jquery tanpa harus mengatur url file di atribut href dari awal.
Saya menggunakan solusi @ rakaloof tanpa JQuery (karena Anda tidak membutuhkannya di sini ). Terima kasih atas idenya! Berikut ini adalah solusi berbasis form vanillaJS:
Bagaimana cara menjalankan JavaScript?Mengaktifkan JavaScript di browser Anda. Buka Chrome di komputer Anda.. Klik. Setelan.. Klik Keamanan dan Privasi.. Klik Setelan situs.. Klik JavaScript.. Pilih Situs dapat menggunakan JavaScript.. Apa itu JavaScript di Chrome?Javascript adalah sebuah bahasa pemrograman sering kali digunakan pada sebuah situs agar lebih dinamis. Javascript ini digunakan untuk menampilkan berbagai jenis elemen dan efek pada sebuah situs.
Apa itu JavaScript di browser?Ringkasan. Banyak situs internet web berisi JavaScript, bahasa pemrograman skrip yang berjalan pada browser web untuk membuat fitur tertentu pada halaman web yang berfungsi. Jika JavaScript telah dinonaktifkan dalam browser Anda, konten atau fungsi dari halaman web dapat dibatasi atau tidak tersedia.
Apa fungsi dari JavaScript?Fungsi JavaScript bisa dibilang cukup banyak, mulai dari membuat tampilan website jadi lebih menarik, menciptakan aplikasi mobile, mengembangkan game, hingga menjalankan web server.
|