Hướng dẫn javascript create xml file for download - javascript tạo tệp xml để tải xuống

Tôi có một yêu cầu như sau:

Có một liên kết trên một trang web. Khi người dùng nhấp vào liên kết, nó sẽ tạo một tệp khi đang bay và một hộp tải xuống bật lên. Làm thế nào để làm điều đó bằng cách sử dụng tập lệnh java?

Hướng dẫn javascript create xml file for download - javascript tạo tệp xml để tải xuống

BSTPierre

29.1K14 Huy hiệu vàng67 Huy hiệu bạc102 Huy hiệu đồng14 gold badges67 silver badges102 bronze badges

hỏi ngày 28 tháng 2 năm 2011 lúc 14:51Feb 28, 2011 at 14:51

2

Bạn có thể sử dụng Blobs như thể hiện trong ví dụ này.

Bạn có thể có chức năng JavaScript với mã sau:

var xmltext = "";

var filename = "file.xml";
var pom = document.createElement('a');
var bb = new Blob([xmltext], {type: 'text/plain'});

pom.setAttribute('href', window.URL.createObjectURL(bb));
pom.setAttribute('download', filename);

pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
pom.draggable = true; 
pom.classList.add('dragout');

pom.click();

Đã trả lời ngày 12 tháng 6 năm 2014 lúc 18:30Jun 12, 2014 at 18:30

Hướng dẫn javascript create xml file for download - javascript tạo tệp xml để tải xuống

JuanjuanJuan

7861 Huy hiệu vàng7 Huy hiệu bạc15 Huy hiệu đồng1 gold badge7 silver badges15 bronze badges

5

Sau khi thử những gì Andreas nói tôi sẽ thêm một cái gì đó:

Script:

function createAndOpenFile(){
    var stupidExample = 'something';
    document.open('data:Application/octet-stream,' + encodeURIComponent(stupidExample));
}

Bạn có một liên kết như thế này, lưu ý tải xuống mới, với nó bạn đặt tên tệp.

Donwload

Nó hoạt động ít nhất trong Chrome 27 và Firefox 21.

Cải thiện được chào đón :-)

Đã trả lời ngày 25 tháng 5 năm 2013 lúc 16:42May 25, 2013 at 16:42

MikelmikelMikel

5.5225 Huy hiệu vàng32 Huy hiệu bạc47 Huy hiệu đồng5 gold badges32 silver badges47 bronze badges

1

Nếu người dùng tin tưởng bạn, bạn có thể tạo tệp XML trực tiếp trong hệ thống tệp của mình. Mã ví dụ cho Mozilla Firefox:

function mozillaSaveFile(filePath,content)
{
    if(window.Components) {
        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
            file.initWithPath(filePath);
            if(!file.exists())
                file.create(0,0664);
            var out = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
            out.init(file,0x20|0x02,00004,null);
            out.write(content,content.length);
            out.flush();
            out.close();
            return true;
        } catch(ex) {
            return false;
        }
    }
    return null;
}

Nếu bạn cần hỗ trợ cho tất cả các trình duyệt, hãy xem cách thực hiện trong http://www.tiddlywiki.com

Chỉnh sửa: Điều này không hoạt động cho Firefox 17+ vì thay đổi đặc quyền được coi là không an toàn và bị xóa. Xem ở đây để biết thêm chi tiết: https://bugzilla.mozilla.org/show_bug.cgi?id=546848#C57 This doesn't work for Firefox 17+ because changing privileges was deemed unsafe and removed. see here for more details: https://bugzilla.mozilla.org/show_bug.cgi?id=546848#c57

Đã trả lời ngày 28 tháng 2 năm 2011 lúc 15:07Feb 28, 2011 at 15:07

rmflowrmflowrmflow

4.2854 Huy hiệu vàng24 Huy hiệu bạc41 Huy hiệu đồng4 gold badges24 silver badges41 bronze badges

decodeRequest(textToDecode) {

    var decodedString = atob(textToDecode);

    var fileName = "fileName1"+'_RQ';
    var fileType = '.xml';

    var blob = new Blob([decodedString], { type: fileType });

    var a = document.createElement('a');
    a.download = fileName;
    a.href = URL.createObjectURL(blob);
    a.dataset.downloadurl = [fileType, a.download, a.href].join(':');
    a.style.display = "none";
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    setTimeout(function() { URL.revokeObjectURL(a.href); }, 1500); 

}

Hướng dẫn javascript create xml file for download - javascript tạo tệp xml để tải xuống

Dharman ♦

28.3K21 Huy hiệu vàng75 Huy hiệu bạc127 Huy hiệu đồng21 gold badges75 silver badges127 bronze badges

Đã trả lời ngày 12 tháng 3 năm 2020 lúc 14:40Mar 12, 2020 at 14:40

1