Tôi đang làm việc trên một dự án nhỏ và muốn thêm nút "Lưu" khi nhấp vào Chuyển đổi mọi thứ bên trong một lớp Div nhất định vào tài liệu .txt [hoặc .pdf hoặc bất kỳ tài liệu nào khác .
Tôi muốn lưu ý thêm một điều nữa, nội dung của div đó không "tĩnh" [nếu tôi có thể gọi nó như vậy], vì người dùng / khách truy cập có thể chỉnh sửa nó, để làm rõ, người dùng / khách truy cập có thể xóa văn bản trong đó Div, cũng như thêm văn bản mới vào div đó. Tôi không chắc điều này làm cho bất kỳ loại khác biệt nào, nhưng nó chỉ là một lưu ý nhỏ.
Điều này có thể?
Trong trình duyệt của bạn, khi bạn muốn lưu một trang HTML mà bạn hiện đang xem, bạn thường chuyển đến menu tệp và nhấp vào Lưu dưới dạng.
Tôi có thể có một nút nhỏ ở dưới cùng của một trang HTML làm điều tương tự không? Vì vậy, thay vì truy cập menu tệp -> Lưu AS, tôi muốn người dùng của mình có thể nhấp vào nút để lưu trang vào đĩa.
Có một giải pháp tồn tại bằng cách sử dụng JavaScript theo như tôi biết, nhưng nó chỉ hoạt động cho IE. Xem ở đây: Liên kết văn bản
Apaderno
Phù vàng 27.4K16 Huy hiệu vàng74 Huy hiệu đồng86 Huy hiệu đồng16 gold badges74 silver badges86 bronze badges
Khi được hỏi ngày 17 tháng 5 năm 2010 lúc 13:43May 17, 2010 at 13:43
Bạn có thể có liên kết chạy tập lệnh phía máy chủ tải tệp HTML và ghi lại cho máy khách bằng tiêu đề Content-Disposition: attachment; filename=xxx.html
.
Đã trả lời ngày 17 tháng 5 năm 2010 lúc 13:53May 17, 2010 at 13:53
Alex K.alex K.Alex K.
168K30 Huy hiệu vàng260 Huy hiệu bạc281 Huy hiệu Đồng30 gold badges260 silver badges281 bronze badges
1
document.execCommand['SavaAs']
chỉ hoạt động trong IE nhưng liên kết sau đây cho thấy các khả năng khác mà bạn có thể muốn thử.
Đây là câu trả lời cho điều đó :]
Đã trả lời ngày 17 tháng 5 năm 2010 lúc 13:50May 17, 2010 at 13:50
SarfrazsarfrazSarfraz
372K76 Huy hiệu vàng529 Huy hiệu bạc576 Huy hiệu Đồng76 gold badges529 silver badges576 bronze badges
Hãy xem plugin tải xuống tải xuống, sử dụng flash để lưu. JavaScript một mình là không thể.
Đã trả lời ngày 17 tháng 5 năm 2010 lúc 13:49May 17, 2010 at 13:49
BạnYOU
Huy hiệu vàng 117K3232 gold badges184 silver badges216 bronze badges
Bạn phải tạo một nút tải xuống tệp HTML hoặc trang bạn đang bật:
Jamal
7567 Huy hiệu vàng22 Huy hiệu bạc31 Huy hiệu Đồng7 gold badges22 silver badges31 bronze badges
Đã trả lời ngày 20 tháng 5 năm 2014 lúc 0:34May 20, 2014 at 0:34
Một tiện ích nút cung cấp tệp "lưu" và tệp "mở" các khả năng mà không cần dựa vào tương tác máy chủ.
Việc tích hợp chức năng "Lưu dưới dạng" và "Mở & NBSP; Tệp" vào một trang web, gần như không thể. Ngay cả với các tính năng HTML 5 mới, "lưu" và "mở" không hoàn toàn "ở đó". Cộng với lưu trữ cục bộ khác xa so với "lưu" truyền thống.
Những gì chúng ta cần chỉ là những điều cơ bản. Một cái gì đó cho phép & nbsp; ứng dụng cổ điển "lưu" và "mở"!
OpenSave là một tiện ích nút dựa trên flash nhỏ AS3 mà bạn có thể dễ dàng kết hợp vào trang web của mình để cung cấp chức năng lưu và mở cơ bản.
Các tính năng chính
- Lấy dữ liệu từ & nbsp; một trang, sau đó trình bày cho người dùng cửa sổ hộp thoại "Lưu dưới dạng ..." để người dùng có thể lưu dữ liệu vào PC cục bộ của họ.
- Tải một tệp cục bộ vào trang bằng hộp thoại "Mở" của hệ điều hành. Tệp được tải có thể được trình bày vào trang hoặc xử lý khác biệt [tùy thuộc vào nhu cầu của nhà phát triển] thông qua JavaScript / Ajax.
- Mọi thứ được xử lý "phía máy khách", do đó không cần phải gây rối với các tiêu đề PHP / máy chủ và bài đăng / getinteraction máy chủ khách hàng phức tạp.
Ví dụ
Mở Nút văn bản Nút mục tiêu Div Lưu nút trường văn bản mục tiêu div Người giữ địa điểm tải xuống mp3 | Lưu giữ vị trí hình ảnh Lưu trình giữ chỗ tập lệnh Tải xuống trình giữ chỗ OpenSave |
OpenSave cung cấp hai "loại" hành vi nút:
Tiết kiệm
Cung cấp các cơ sở để lưu dữ liệu: 1. Dữ liệu dựa trên văn bản [ASCII/UTF8] từ phần tử HTML trên trang. 2. Dữ liệu dựa trên văn bản [ASCII/UTF8] từ trình xử lý JavaScript. 3. Tệp nhị phân hoặc văn bản từ ** máy chủ ** của bạn bằng URL được cung cấp.
1. Text-based [ascii/utf8] data from an HTML element on the page.
2. Text-based [ascii/utf8] data from a javascript handler.
3. Binary or text files from **your** server using a provided URL..
Mở
Cung cấp các cơ sở để mở một tệp dựa trên văn bản từ máy cục bộ của người dùng.
Các bước cài đặt
1. Xác định đường dẫn SWF.
Đặt vị trí tệp SWF thành URL "từ gốc" [bắt đầu bằng dấu gạch chéo].
Thí dụ:
opensave.swf = "/path/to/opensave.swf";Lưu ý: Bạn cũng có thể sử dụng URL đầy đủ như:
opensave.swf = "//www.yoursite.com/path/to/opensave.swf";
.. Tuy nhiên, có thể có vấn đề với việc sử dụng URL đầy đủ. Xem "URL thích hợp" dưới đây để biết thêm thông tin.
2. Tham khảo JavaScript OpenSave
Trong trang HTML của bạn, bao gồm một tham chiếu đến tệp tập lệnh JavaScript này.
Example:
3. Bao gồm một nút trong trang của bạn
Nút "Lưu":
Dữ liệu để lưu đến từ đây. Được thay thế bằng nút openSave.make [{width: 100, chiều cao: 30, dataid: "Savedata", Buttondiv: "SaveButton"}];
Replaced By Button
opensave.make[{width: 100, height: 30, dataID: "saveData", buttonDiv: "saveButton"}];
Một nút "Mở":
Dữ liệu để mở vào đây được thay thế bởi nút openSave.make [{loại: "mở", chiều rộng: 100, chiều cao: 30, dataid: "opendata", Buttondiv: "OpenButton"}];
Replaced By Button
opensave.make[{kind:"open", width: 100, height: 30, dataID: "openData", buttonDiv: "openButton"}];
Xem tệp ví dụ.html cho, các ví dụ về cách đưa nút vào HTML của các trang của bạn.
Tùy chọn nút [tham chiếu nhanh]
Quyền mua | Thí dụ | |
bề rộng | 100 | YÊU CẦU |
Chiều cao | 30 | YÊU CẦU |
Chiều cao | "//www/path/to/file.jpg" | URLOR dataID REQUIRED |
url hoặc dataid yêu cầu | "HTMLelementID" | URLOR dataID REQUIRED |
url hoặc dataid yêu cầu | "HTMLelementID" | Dataid |
Buttondiv | Thường được yêu cầu | tốt bụng |
"Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở". | "//www/path/to/opensave.swf" | tốt bụng |
"Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở". | KHÔNG BẮT BUỘC | tốt bụng |
"Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở". | KHÔNG BẮT BUỘC | tốt bụng |
"Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở". | "#FFFFFF" | tốt bụng |
"Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở". | 16 | tốt bụng |
image_up | "//www/path/to/button_up.png" | tốt bụng |
image_down | "//www/path/to/button_down.png" | tốt bụng |
image_over | "//www/path/to/button_over.png" | tốt bụng |
"Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở". | true | tốt bụng |
"Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở". | KHÔNG BẮT BUỘC | tốt bụng |
"Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở". | KHÔNG BẮT BUỘC | tốt bụng |
"Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở". | KHÔNG BẮT BUỘC | tốt bụng |
"Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở". | KHÔNG BẮT BUỘC | tốt bụng |
"Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở". | KHÔNG BẮT BUỘC | tốt bụng |
"Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở".
Buttondiv | Thường được yêu cầu tốt bụng "Mở" mặc định để "lưu", vì vậy bạn chỉ cần sử dụng nó khi tạo nút "Mở". |
KHÔNG BẮT BUỘC | SWF |
Chiều cao | URL url hoặc dataid yêu cầu Dataid |
url hoặc dataid yêu cầu | Dataid Buttondiv 2. Đối với các nút "Mở": Tải dữ liệu văn bản từ một tệp được người dùng chọn vào phần tử HTML. "Dataid" đề cập đến thuộc tính "ID" của phần tử HTML. Ví dụ: Đây là dữ liệu của tôi Here's my data Để định cấu hình một nút để sử dụng div ở trên làm thứ chúng tôi "lưu từ" hoặc "tải vào", đặt "dataid" như: dataid: "mydatacontainer", Phần tử HTML có thể là bất kỳ loại phần tử HTML nào bao gồm div, p, select, đầu vào, v.v ... Đối với các phần tử dựa trên hình thức, OpenSave Set là "Giá trị" [chứ không phải là "InsideHTML"]. Trong khi các yếu tố khác, chẳng hạn như div hoặc p, openSave sử dụng "InsideHtml" [ví dụ: công cụ ở giữa mở và đóng]. |
người xử lý | Một chức năng JavaScript do người dùng xác định xử lý dữ liệu IO. Thay vào đó, dựa vào các đối tượng HTML trên trang để "lưu từ" hoặc "tải vào", bạn có thể sử dụng các phương thức JavaScript hoặc AJAX khác để lấy hoặc đặt dữ liệu. Ví dụ: nếu bạn muốn rút một số TXT từ một máy chủ từ xa hoặc đẩy tệp của người dùng vào máy chủ của bạn, bạn có thể tận dụng tùy chọn "Trình xử lý" để hoạt động như một liên lạc giữa nút và máy chủ của bạn. "Handler" có thể được sử dụng với cả nút "Lưu" và "Mở". Cho các nút "Lưu"
Cho các nút "Mở" OpenSave gửi chức năng của bạn nội dung của tệp. OpenSave gửi một đối tượng làm đối số vào hàm: Handler [ObjectData] Trong đó ObjectData chứa 3 trường: id id atjectData.idthe, có thể được sử dụng cùng với API "openSave.getButtonInfo []" "để xem lại cấu hình và thiết lập của nút.id ObjectData.FileName The basename.ext của tệp được tải [đường dẫn hệ thống đầy đủ không khả dụng].filename ObjectData.Data64Base64 Dữ liệu tệp được mã hóa. Sử dụng "opensave.base64_decode" để giải mã dữ liệu nếu được yêu cầu.data64 |
Buttondiv | Div sẽ được thay thế bằng nút. OpenSave sử dụng SWFObject để hiển thị các nút trên trang. Quá trình kết xuất một nút liên quan đến việc thiết lập một div trên trang sẽ được sử dụng làm "trình giữ chỗ", khi OpenSave nhận được yêu cầu thực hiện nút [opensave.make] nút thay thế thẻ div "trình giữ chỗ" bằng nút. Nói cách khác, thẻ div được xóa khỏi trang và mã cần thiết để hiển thị nút thay thế thẻ div. Tình huống này rất hữu ích cho một số lý do: 1. Cho phép các nhà thiết kế định vị nút trên trang một cách hiệu quả [sử dụng trình giữ chỗ div]. 2. Cho phép các nút hiển thị sau khi trang được tải đầy đủ, cung cấp cho kết xuất trang nhận thức nhanh hơn. 3. Đảm bảo nút được hiển thị int anh ấy. 4. Đảm bảo DOM [và Div đích] đã sẵn sàng trước khi hiển thị nút. Nếu bạn đang sử dụng trường văn bản làm IO chính của mình, bạn có thể sử dụng tùy chọn "Đính kèm" để tự động hiển thị nút ngay bên dưới trường văn bản. Điều này cho phép bạn không phải đối phó với việc tạo một div riêng trên trang của bạn theo cách thủ công, cộng với bạn không phải sử dụng tùy chọn Buttondiv. Lưu ý: Nếu sử dụng tùy chọn "Đính kèm", Buttondiv không bắt buộc và sẽ bị bỏ qua. |
SWF | Xác định URL vào tệp opensave.swf trên cơ sở 'per-button "hoặc sử dụng tùy chọn này để bạn không phải fiddle với việc chỉnh sửa tệp javascript opensave.js. |
tốt bụng | Vì OpenSave có thể được sử dụng để cả mở các tệp và lưu tệp, chúng tôi cần xác định loại nút nào chúng tôi đang cố gắng sử dụng. Theo mặc định, tất cả các nút được thiết lập tự động dưới dạng nút "Lưu". Vì vậy, tùy chọn này chỉ được yêu cầu nếu bạn đang tạo nút "Mở". |
nhãn mác | Văn bản để hiển thị trên nút. |
văn bản màu | Màu sắc của nhãn văn bản. |
cỡ chữ | Kích thước của nhãn văn bản. |
Image_Up Image_down Image_Over | Đồ họa nút tùy chỉnh thay vì hình dạng/thiết kế nút tiêu chuẩn, xây dựng. Image_Down và Image_over là tùy chọn. Có nghĩa là bạn chỉ có thể sử dụng Image_up, mà không bao gồm Image_Down hoặc Image_over. Khi sử dụng tùy chọn này, hãy chắc chắn sử dụng các URL thích hợp cho các tệp hình ảnh. Xem phần "URL thích hợp" để biết thêm thông tin. |
gắn | Đính kèm một nút vào phần tử HTML. Sử dụng tùy chọn "Đính kèm" để hiển thị một nút ngay bên dưới phần tử HTML mà bạn đang sử dụng để tải/lưu dữ liệu đến/từ được định nghĩa cho tùy chọn "Dataid". Tùy chọn này cho phép bạn không phải đối phó với việc tạo một div "trình giữ chỗ" riêng biệt cho nút trên trang của bạn theo cách thủ công, cộng với bạn không phải sử dụng tùy chọn Buttondiv. Lưu ý: Nếu sử dụng tùy chọn "Đính kèm", Buttondiv không bắt buộc và sẽ bị bỏ qua. |
phong tục | Một trường tùy chỉnh, nơi bạn có thể lưu trữ bất kỳ loại dữ liệu nào [chuỗi, mảng, đối tượng, v.v.] vào nút để sử dụng trong tương lai. |
oncomplete | Một chức năng nhận được ping sau khi sự kiện này xảy ra. Trả về một đối số, đó là thiết lập cấu hình cho nút. Xem ví dụ.html trong zip tải xuống ví dụ sử dụng. |
Onerror | Một chức năng nhận được ping sau khi sự kiện này xảy ra. Trả về một đối số, đó là thiết lập cấu hình cho nút. Xem ví dụ.html trong zip tải xuống ví dụ sử dụng. |
Onerror | Một chức năng nhận được ping sau khi sự kiện này xảy ra. Trả về một đối số, đó là thiết lập cấu hình cho nút. Xem ví dụ.html trong zip tải xuống ví dụ sử dụng. |
Onerror | ONCANCEL |
không chính xác
opensave.getButtonInfo[theButtonID];
Một chức năng nhận được ping sau khi sự kiện này xảy ra. Trả về 3 đối số: Thiết lập cấu hình cho nút, tổng số byte, được tải byte. & Nbsp; xem ví dụ.html trong zip tải xuống ví dụ sử dụng.
API [tham chiếu chức năng]
confObj.kind
confObj.handler
confObj.id
confObj.width
confObj.height
confObj.buttonDiv
confObj.attach
confObj.dataID
confObj.url
confObj.kind
confObj.flashvars
confObj.custom
confObj.filename // Established filename, or loaded file's actual filename.
confObj.data // If the button hasn't been clicked yet, this field will be null. Otherwise, this field will contain the data from a file loaded by the user via "open". If the user has clicked the button [saved], this field will get populated with the contents of the HTML element with the id attribute in the page defined by the "dataID" option.
opensave.getData[theButtonID]
Trả về một đối tượng chứa các trường sau:
confobj.swf Confobj.kind Confobj.Handler Confobj.id Confobj.Width Confobj.height Confobj.ButTondiv Confobj.attach Confobj.Dataid Confobj.url Confobj.Kind Confobj.FlashVars ConfoBJ Tên tệp thực tế. confobj.data // Nếu nút chưa được nhấp, trường này sẽ không có. Mặt khác, trường này sẽ chứa dữ liệu từ một tệp được tải bởi người dùng thông qua "Mở". Nếu người dùng đã nhấp vào nút [đã lưu], trường này sẽ được điền với nội dung của phần tử HTML với thuộc tính ID trong trang được xác định bởi tùy chọn "Dataid".
Trả về một đối tượng chứa hai trường.
returnedObject.data = "The HTML element's text data"Đối với dữ liệu cục bộ, đối tượng được trả về có hình dạng:
returnedObject.filename = "foo.bar" returnedObject.data = "dữ liệu văn bản của phần tử html"
returnedObject.url = "//ww.yoursite.com/path/to/file.foo" // as defined during button setup.
opensave.Base64_decode[encodedString]
Đối với các tệp từ xa, đối tượng được trả về có hình dạng:
opensave.make[configObject]
returnedObject.filename = "foo.bar" returnEndObject.url = "//ww.yoursite.com/path/to/file.foo" // như được xác định trong quá trình thiết lập nút.
Giải mã chuỗi được mã hóa thành dạng gốc.
Tạo một nút mới trong trang.
JSON:
Cấu hình có thể là JSON hoặc một đối tượng JavaScript tiêu chuẩn. Xem phần "Tùy chọn nút" cho các trường bắt buộc và tùy chọn.
opensave.make[jsonCof];Chúng tôi khuyên bạn nên xem xét mã nguồn tệp ví dụ.html để xem làm thế nào để hàm ý. Dưới đây là một vài ví dụ bổ sung:
var jsonCof = {width: 100, height: 30, dataid: "htmlEuityId"}; opensave.make [jsoncof];
opensave.make [{width: 100, chiều cao: 30, url: " //www/path.to/file.jpg"}];
jsObj.width = 100;
jsObj.height = 30;
jsObj.dataID = "HTMLelementID";
opensave.make[jsObj];Đối tượng JavaScript tiêu chuẩn:
jsObj.width = 100;
jsObj.height = 30;
jsObj.url = "//www/path.to/file.jpg";
opensave.make[jsObj];
var jsobj = new object []; jsobj.width = 100; jsobj.height = 30; jsobj.dataid = "htmlelementId"; opensave.make [jsobj];
var jsobj = new object []; jsobj.width = 100; jsobj.height = 30; jsobj.url = " //www/path.to/file.jpg"; opensave.make [jsobj];
URL thích hợp
Ví dụ, một URL đầy đủ trông giống như:
//www.yoursite.com/path/to/file.html
Trong khi đó một url gốc trông giống như:
/path/to/file.html
Trong đó URL bắt đầu với một ký tự chém "/". Đây là một loại URL loại cắt ngắn hướng dẫn trình duyệt "bắt đầu tại" gốc "của trang web.
Sử dụng URL gốc cho phép Opensave được sử dụng trên bất kỳ trang nào trên toàn trang web của bạn. Cộng với việc giảm thiểu bất kỳ vấn đề điên rồ nào với các tính năng bảo mật được xây dựng của Flash, đôi khi cấm các hoạt động trên các sub.domains. Ví dụ: truy cập một tệp hoặc trang trong đó "www" không được sử dụng trong URL.
Ví dụ: khi người dùng truy cập trang của bạn bằng URL sau:
//yoursite.com/page.html
... và nút được cấu hình để tải xuống một tệp bằng cách sử dụng "www" như:
//www.yousite.com/file.zip
... Rủi ro bảo mật tiềm năng được gắn cờ bởi Flash, ngăn tệp tải xuống vì yêu cầu được thực hiện từ "yoursite.com", trong khi tệp nằm trên "www.yoursite.com" [với "www"].
Tải xuống