다음과 같은 요구 사항이 있습니다.javascript를 사용하여 XML 파일을 만들고 다운로드하는 방법은 무엇입니까?
웹 페이지에 링크가 있습니다. 사용자가 링크를 클릭하면 파일을 즉시 만들어야하며 다운로드 상자가 나타납니다. 어떻게 자바 스크립트를 사용하여 그것을 할 수 있습니까?
다음과 같은 요구 사항이 있습니다.javascript를 사용하여 XML 파일을 만들고 다운로드하는 방법은 무엇입니까?
웹 페이지에 링크가 있습니다. 사용자가 링크를 클릭하면 파일을 즉시 만들어야하며 다운로드 상자가 나타납니다. 어떻게 자바 스크립트를 사용하여 그것을 할 수 있습니까?
사용자가 신뢰하는 경우 파일 시스템에서 직접 XML 파일을 만들 수 있습니다. 모질라 파이어 폭스에 대한 예제 코드 : 모든 브라우저에서 지원해야하는 경우
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;
}
,이를 구현하는 방법을 알아보십시오 http://www.tiddlywiki.com
편집 : 변화 때문에 이것은 파이어 폭스 17 + 작동하지 않습니다 권한이 안전하지 않은 것으로 간주되어 제거되었습니다. 자세한 내용은 여기를 참조하십시오 시도 후 https://bugzilla.mozilla.org/show_bug.cgi?id=546848#c57
데이터 URI를 만들 수 있습니다. 대부분의 최신 브라우저는이를 이해할 수 있어야합니다. http://en.wikipedia.org/wiki/Data_URI_scheme
을 안드레아스 내가 뭔가를 추가 할 것입니다 말씀 : 그것으로 파일을 넣어, 당신은 이런 링크가
function createAndOpenFile(){
var stupidExample = '<?xml version="1.0" encoding="utf-8"?><aTag>something</aTag>';
document.open('data:Application/octet-stream,' + encodeURIComponent(stupidExample));
}
, the new download atribute주의 :
이스크립트 이름.
<a href="#" onclick="createAndOpenFile()" download="file.xml">Donwload</a>
그것은 예와 같이 향상된
환영 :-)
좋은 답변입니다. 명성이 있습니다. 또한 수용된 응답과 같이 비표준 JS를 기반으로하지도 않습니다. +1. – Michael
당신은 모양을 사용할 수 있습니다 (21) 적어도 크롬 27, 파이어 폭스에서 작동 http://html5-demos.appspot.com/static/a.download.html
당신은 할 수 있습니다다음 코드의 javacript 함수
var xmltext = "<sometag><someothertag></someothertag></sometag>";
var pom = document.createElement('a');
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();
파일이 이미 존재하면 그냥 cr 파일의 URL에 대한 링크를 작성하십시오. 그렇지 않은 경우에는 서버 측 코드를 사용해야합니다. –
XML 문자열을 만드는 것이 쉬운 부분입니다. 브라우저에서 합성 된 것을 "다운로드 가능한"파일로 만드는 것은 어렵지는 않지만 모든 (합리적인) 브라우저에서 작동하도록 어렵습니다. – Pointy