Đọc tệp html cục bộ javascript
Tất nhiên javascript có thể đọc các tệp cục bộ. Chia sẻ kiến thức khó kiếm được của bạn ở đây để cứu những người mới khác một số thất vọng Show
Tại sao dự án này?Là một giáo viên khoa học máy tính có kinh nghiệm vừa phải về một số ngôn ngữ lập trình (bao gồm cả OOP và các ngôn ngữ chức năng), tôi đã gặp khó khăn lớn khi đọc tệp từ thư mục cục bộ khi lần đầu tiên học javascript. Các cuộc thảo luận về stackoverflow và các nơi khác cho thấy nhiều người mới sử dụng javascript có cùng sự thất vọng Câu trả lời được đưa ra thường xuyên nhất là các vấn đề bảo mật cấm hoặc ít nhất là không khuyến khích việc đọc từ tệp cục bộ. Điều này không có ý nghĩa với nhiều người trong chúng ta. Chúng tôi không nói về một khách truy cập vào một trang web vô tình thực thi một chương trình javascript trên trình duyệt của cô ấy/anh ấy đang cố đọc một tệp từ máy tính của khách truy cập không may đó. Chúng ta đang nói về một chương trình javascript đang cố đọc tệp dữ liệu và/hoặc tệp cấu hình nằm trên cùng một máy tính nơi chương trình được lưu trữ. Đôi khi chúng ta thậm chí không nói về máy chủ web. Chúng tôi đang nói về việc mở tệp html cục bộ trong trình duyệt (dẫn đến loại URL này. Một câu trả lời thường được đưa ra khác là người ta phải chạy một máy chủ web cục bộ để chương trình javascript có thể thực hiện lệnh gọi ajax. Câu trả lời này ít nhất thừa nhận thực tế là một số người trong chúng ta không quan tâm đến việc viết một chương trình để chạy công khai. Chúng tôi có thể chạy nó hoàn toàn ngoại tuyến giống như chúng tôi chạy nhiều chương trình được viết bằng bất kỳ ngôn ngữ lập trình nào khác. Tuy nhiên, sẽ hợp lý hơn nếu trình duyệt mặc định cho phép đọc các tệp cục bộ khi một. Tệp html được mở dưới dạng Sự thật là, một chương trình javascript có thể đọc từ các tệp cục bộ có hoặc không có máy chủ web, với một số lưu ý. Vì vậy, những câu trả lời 'bạn không thể' hoàn toàn sai. (Có thể những người được hỏi đã hiểu nhầm câu hỏi của người mới?) Và chúng tôi hoàn toàn không đồng ý với những câu trả lời 'bạn không nên' đó bằng cách ghi lại cách thực hiện trong các tình huống khác nhau cho những người mới sử dụng javascript đang bối rối. Chúng tôi hy vọng một ngày nào đó việc tiêu chuẩn hóa tính năng rất cơ bản này sẽ làm cho dự án này trở nên lỗi thời Giải pháp jQueryCũng như một số nhầm lẫn khác liên quan đến javascript, câu trả lời đơn giản nhất là đừng bận tâm đến javascript thuần túy mà thay vào đó hãy sử dụng jQuery hoặc một số thư viện khác jQuery. get() có thể tải một tập tin từ xa. Biến thể jQuery cụ thể hơn của nó. getJSON() có thể tải tệp json từ xa. Họ cũng có thể tải tệp cục bộ nếu bản thân tệp javascript được tải từ trang html được chỉ định là "http. //máy chủ cục bộ/. ". (Giải pháp "máy chủ web cục bộ". ) Nếu bạn sử dụng crom để mở trang html cục bộ, trang này sẽ tải tệp javascript cục bộ dưới dạng "tệp. ///. ", thì jQuery. nhận () và jQuery. getJSON() sẽ không hoạt động. Trước tiên, bạn phải đóng tất cả các cửa sổ crom hiện có, sau đó khởi động nó từ dòng lệnh. Nếu bạn sử dụng firefox để mở trang html cục bộ, trang này sẽ tải tệp javascript cục bộ dưới dạng "tệp. ///. ", sau đó bạn cần đặt bảo mật. fileuri. nghiêm ngặt_origin_policy thành Sai trong firefox về. cấu hình. Sau đó, jQuery. getJSON() hoạt động. Tuy nhiên trong tình huống này, jQuery. gọi lại get() không hoạt động trực tiếp. Tuy nhiên, bạn có thể gọi jQuery. get() để lấy dữ liệu và gọi window. setTimeout() để chờ dữ liệu xuất hiện. Đó là một hack xấu xí nhưng nó hoạt động. Nếu muốn, chương trình của bạn có thể thực hiện kiểm tra Sử dụng jQuery. getJSON() để đọc tệp cục bộ có thể khiến firefox xuất hiện thông báo lỗi trong bảng điều khiển với nội dung "Lỗi phân tích cú pháp XML. không được hình thành tốt. tập tin. ///. ". Điều này có thể được khắc phục bằng cách gọi overrideMimeType(). Xem QA này để biết chi tiết Bài viết ngắn này cho thấy một cách đơn giản để sử dụng JS thuần túy để tương tác với các tệp cục bộ của người dùng mà không cần chuyển dữ liệu qua mạng. Phương pháp này có sẵn trong hầu hết các trình duyệt web crom như Google Chrome, MS Edge, v.v. ví dụ 1. Đọc tệp và siêu dữ liệu của chúngVí dụ sau sử dụng đầu vào HTML đơn giản để đọc (các) tệp từ thiết bị người dùng và in ra siêu dữ liệu tệp trong bảng điều khiển trình duyệt ví dụ 2. Đọc tệp văn bản dưới dạng chuỗi (hoặc JSON)Ví dụ này bao gồm chức năng giải mã cơ sở 64 và sự kiện trình đọc để nghe khi tệp được đọc. Sau khi tệp được tải, kết quả văn bản được in ra dưới dạng Chuỗi tại HTML đích Bạn có thể bao gồm chức năng phân tích cú pháp nếu tệp của bạn là JSON, XML, v.v. Ví dụ trực tiếp trên JSFiddle ví dụ 3. Đọc một tập tin hình ảnhVí dụ này cập nhật nguồn hình ảnh trên trang HTML thành tệp đã tải lên của người dùng Bạn có thể bao gồm trình đọc siêu dữ liệu từ ví dụ 1 để kiểm tra xem tệp đã tải lên có phải là hình ảnh không Ví dụ trực tiếp trên JSFiddle Tôi hy vọng bạn thích bài viết này và thấy nó hữu ích cho công việc hoặc dự án hàng ngày của bạn Tham gia Medium với liên kết giới thiệu của tôi - Joe T. SanthanavanichLà thành viên Phương tiện, một phần phí thành viên của bạn sẽ được chuyển đến các tác giả mà bạn đã đọc và bạn có toàn quyền truy cập vào mọi câu chuyện…vừa phải. com Thêm nội dung tại PlainEnglish. io. Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi. Theo dõi chúng tôi trên Twitter và LinkedIn. Tham gia cộng đồng của chúng tôi Bạn có thể đọc các tệp cục bộ bằng JavaScript không?JavaScript thường không thể truy cập tệp cục bộ trong trình duyệt mới, nhưng đối tượng XMLHttpRequest có thể được sử dụng để đọc tệp . Vì vậy, nó thực sự là Ajax (chứ không phải Javascript) đang đọc tệp.
JavaScript có thể đọc HTML không?JavaScript có đọc được HTML không? . With the HTML DOM, JavaScript can access and change all the elements of an HTML document.
HTML có thể đọc các tệp cục bộ không?HTML 5 cung cấp cách tiêu chuẩn để tương tác với các tệp cục bộ với sự trợ giúp của API tệp . API tệp cho phép tương tác với các tệp đơn, nhiều tệp cũng như BLOB. API FileReader có thể được sử dụng để đọc tệp không đồng bộ khi cộng tác với xử lý sự kiện JavaScript.
JavaScript có thể sửa đổi các tệp cục bộ không?Bạn không thể sửa đổi tệp cục bộ từ Javascript . |