Baru -baru ini, saya mengalami beberapa masalah dalam mendapatkan jalur file karena saya perlu mengunggah file ke Oracle Blob. Karena alasan keamanan, browser baru tidak mendukung langsung URL lokal. Saya telah menemukan beberapa metode online, sebagai berikut:
<script type = "text/javascript"> // fx dapatkan fungsi metode path file readFileFirefox (FileBrowser) {coba {netscape.security.privilegemanager.enablePrivilege ("UniversalxpConnect"); } catch (e) {waspada (' file '); kembali; } var filename = FileBrowser.Value; // Langkah ini bisa mendapatkan jalur lengkap klien. Apakah penilaian di bawah ini terlalu rumit, dan penilaian di bawah ini juga sangat rumit. var file = components.classes ["@mozilla.org/file/local;1"] .createInstance (components.interfaces.nsilocalfile); coba {// slash back for windows file.initwithpath (filename.replace (//// g, "////")); } catch (e) {if (e.result! = components.results.ns_error_file_unrecognized_path) lempar e; alert ("file '" + nama file + "' tidak dapat dimuat: jalur relatif tidak diizinkan. Harap berikan jalur absolut ke file ini."); kembali; } if (file.exists () == false) {alert ("file '" + fileName + "' tidak ditemukan."); kembali; } return file.path;} // Dapatkan jalur sesuai dengan fungsi browser yang berbeda getVl (obj) {// juri browser var sys = {}; var ua = navigator.useragent.tolowercase (); var s; (s = ua.match (/msie ([/d. media+)/))? Sys.ie = s [1]: (s = ua.match (/firefox // ([/d.]+)/))? Sys.firefox = s [1]: (s = ua.match (/chrome // ([/d.]+)/)))? Sys.chrome = s [1]: (s = ua.match (/opera. ([/D.]+)/))? Sys.opera = s [1]: (s = ua.match (/versi // ([/d.]+).*Safari/))? Sys.safari = S [1]: 0; var file_url = ""; if (sys.ie <= "6.0") {//ie5.5.ie6.0 file_url = obj.value; } lain jika (sys.ie> = "7.0") {// ie7, ie8 obj.select (); file_url = document.selection.createrange (). Teks; } lain jika (sys.firefox) {// fx // file_url = document.geteLementById ("file"). File [0] .getAsDataurl (); // jalur yang diperoleh adalah string yang dienkripsi yang diakui oleh ff file_url = readfilefirefox (obj); } lain jika (sys.chrome) {file_url = obj.value; } // alert (file_url); Document.getElementById ("Teks"). InnerHtml = "Dapatkan Metode Lengkap dari Domain File sebagai:"+File_Url;} </script> <h1> JS Metode untuk mendapatkan jalur lengkap dari domain file, kompatibel dengan berbagai browser </h1> <v id = "Teks" style = "color:#f00;"> </h1> <"div =" Text "style" color = "color:#f00;"> </h1> div <"TEXT =" TEXT "style =" color:#f00; "> </h1> input =" TEXT "TEXT" style = "color:#f00;"> </h1> input = "" "" "" "" onchange = "getVl (this)" />Kode di atas digunakan secara normal di IE 6 7 8. Di bawah IE9, Document.Selection.createrange () menolak akses, yang tampaknya ditingkatkan.
Akhirnya, tes menemukan bahwa di IE9, jika kontrol file mendapat fokus, document.selection.createrange () menolak akses.
Karena itu, Anda hanya perlu menambahkan kalimat obj.blur () setelah obj.select ().
MANTAN:
lain if (sys.ie> = "7.0") {// ie7, ie8 obj.select (); obj.blur (); file_url = document.selection.createrange (). Teks; } // obj = document.getElementById ("file");Metode di atas (disarankan) untuk mendapatkan jalur absolut file input di JS adalah semua konten yang dibagikan oleh editor. Saya harap ini dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.