왜 이것이 ff/chrome에서 작동하지 않습니까? (북마크로서 사용)execCommand SaveAs가 Firefox에서 작동합니까?
javascript: document.execCommand('SaveAs','true','http://www.google.com');
왜 이것이 ff/chrome에서 작동하지 않습니까? (북마크로서 사용)execCommand SaveAs가 Firefox에서 작동합니까?
javascript: document.execCommand('SaveAs','true','http://www.google.com');
execCommand는 여러 브라우저에서 완전히 표준화되지 않았습니다. 실제로 execCommand ('SaveAs', ...)는 IE에서만 지원되는 것으로 보입니다. save-as를 강제로 수행하는 권장 방법은 콘텐츠 처리 : 첨부 헤더를 사용하는 것입니다. http://www.jtricks.com/bits/content_disposition.html
이것은 HTTP 헤더의 일부이므로 모든 파일 유형에서 사용할 수 있습니다. 아파치를 사용하는 경우 here과 같이 .htaccess 파일을 사용하여 헤더를 추가 할 수 있습니다. 예 :
<FilesMatch "\.pdf$">
<IfModule mod_headers.c>
Header set Content-Disposition "attachment"
# for older browsers
Header set Content-Type "application/octet-stream"
</IfModule>
</FilesMatch>
는 Microsoft puts it 같이, "이 방법에 적용되는 공용 표준이 없다."
Firefox는 execCommand를 지원하지 않습니다. 사실 그것은 IE 전용 인 것 같습니다.
비슷한 파이어 폭스 기능이 있습니까? –
내가 아는 바가 없다면 bdonlan이 제안한대로 내용 처리 헤더를 사용하는 것이 좋습니다. –
Mozilla 1.3+ – Rup
data URIs (Download data url file 참조) 및 선택적으로 다운로드 속성을 통해 Firefox에서이를 수행 할 수 있습니다.
HTML5 심 데모는 http://html5-demos.appspot.com/static/a.download.html을 참조하십시오.
How to force save as dialog box in firefox besides changing headers?도이 주제를 다룹니다.
Firefox 테스트를 거친 다음 데모로 테스트 할 수도 있습니다.
<script>
var myText = 'Hello world!',
myHTML = '<b>'+myText+'</b>';
function openFile (textToEncode, contentType, newWindow) {
// For window.btoa (base64) polyfills, see
// https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills
var encodedText = window.btoa(textToEncode);
var dataURL = 'data:' + contentType + ';base64,' + encodedText;
if (newWindow) { // Not useful for application/octet-stream type
window.open(dataURL); // To open in a new tab/window
}
else {
window.location = dataURL; // To change the current page
}
}
</script>
<h1>Hello world files:</h1>
<p>Octet stream type to prompts download dialog in Firefox, but with no
default file type or path:</p>
<a href="data:application/octet-stream;base64,SGVsbG8sIFdvcmxkIQ%3D%3D">
(text example)</a>
<a href="data:application/octet-stream;base64,PGI+SGVsbG8gd29ybGQhPC9iPg==">
(HTML example)</a>
<button onclick="openFile(myHTML, 'application/octet-stream');">
(HTML example, from JavaScript)</button>
<p>Quickly viewable (and manually savable) in browser but no dialog presented:</p>
<a href="data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D">(plain text, same window)</a>
<a href="data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D" target="new-tab">
(plain text--in new tab)</a>
<a href="data:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E">(HTML, same window)</a>
<button onclick="openFile(myText, 'text/plain');">
(text example, from JavaScript)</button>
<button onclick="openFile(myText, 'text/plain', true);">
(text example, from JavaScript; open in new window)</button>
<button onclick="openFile(myHTML, 'text/html', true);">
(HTML example, from JavaScript; open in new window)</button>
:
<!DOCTYPE html>
<body>
<script>
var a = document.createElement('a');
//alert(a.download === ''); // If true, this seems to indicate support
a.setAttribute('download', 'testme.png');
a.href = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAwElEQVQ4jWNgGPRgv7Y2z0lj45STpqbHT5iaxhCt8biBgcJJU9PZJ01MPp80MfkPxZOJN8DEpAFJ4/+TJib/T5mY7CdK8wkTkwJ0zVA8naDmk0ZGPjg0/z9hbGyDV/MZY2ORkyYm77FpPmVispwSp6/e7+DAQtj5pqabsdi8myjNUANmY7H99jEjIxWiDDhuauqCxYDD+7W1eYgy4IyxMetJE5PpyH4/ZWqqTZRmGIAm3fsk2YwOjhkZqZCtmVQAAIOlmIi0XoodAAAAAElFTkSuQmCC';
a.innerHTML = 'testing';
a.style.display = 'none';
document.body.appendChild(a);
a.click();
</script>
다음은 또한 다운로드 속성없이 자바 스크립트를 시작 부하뿐만 아니라 URL에 대한 작동
(이 방법은 파일 이름을 허용하지 않습니다하지만, 그것은 새 탭에서 미리보기가 가능하지 않습니다) 답변을 주셔서 감사합니다.
에서 지원되는대로 (또는 'execCommand (saveAs)'가 아닌) (또는 적어도 execCommand()가 [MDN에 문서화 됨] (https://developer.mozilla.org/en/rich-text_editing_in_mozilla) 루프 있음 다른 질문을 언급, 나는 [어떻게 머리글을 변경 게다가 파이어 폭스에서 대화 상자로 강제로 저장?] (http://stackoverflow.com/questions/833068/how-to-force-save-as-dialog-box-in -firefox-outside-changing-headers) – Juto
더 구체적으로, 나는 웹에있는 PDF 파일에 save-as를 강제 실행하려고합니다. ff에서이 작업을 수행 할 수있는 방법이 있습니까? –
30 분 후 동일한 사용자가 [어떻게 헤더를 변경하는 것 외에 Firefox에서 대화 상자를 강제로 저장합니까?] (http://stackoverflow.com/questions/833068/how-to-force-save-as-dialog- box-in-firefox-outside-changing-headers) – hakre