여기저기 어렵게 찾았네요..
function downloadImage(imageUrl,fName){
if(/msie|trident/i.test(navigator.userAgent)){ // IE 인지 체크
var _window = window.open(imageUrl, '_blank');// 새창으로 열어서..
_window.document.close();
_window.document.execCommand('SaveAs', true, fName);// 저장하라, false 로 해도 동일
_window.close();// 끝나면 새창 닫음
}else{
var $a = $("<a>").attr("href", imageUrl).attr("download", fName).appendTo("body");// HTML 5 가 가능한 녀석들은 좋아..
$a[0].click();
$a.remove();
}
}
imageUrl 에는 이미지 경로, fName 은 imageUrl 이 로컬에 다운로드 될 때 사용되는 파일명
그런데, 상기 IE 모듈도.. 문제가 있네요.. 그냥 화면이 닫히는 현상이 IE11 에서 발견.. ㅠ.
그래서 다시 iframe 이용한 다운로드 참조.. http://blog.naver.com/naji22/140101613699
이 때에는 더블클릭하라고 해야 하겠네요..
에구구.. 문제가 또 있네요. iframe 이 DOM 에 올려질 때 onload 에 의해서, .htm 을 저장하라는 화면이 뜬다는거..
그래서 아래와 같이 정정하니까 이제 뭔가 제대로 되는듯.. 그래도 처음 클릭 때에는 아무것도 안해요.. ㅠ.
<iframe id="imgdown4IE" name="imgdown4IE" src="" width="0" height="0" frameborder="0" onload=""></iframe>
var numDownloadImage = 0;
function downloadImage(imageUrl,fName){ // 이미지 다운로드
if(/msie|trident/i.test(navigator.userAgent)){ // IE 가 항상 문제..
$('#imgdown4IE').attr('src',imageUrl); // 이미지 세팅
if(numDownloadImage++>0) imgdown4IE.document.execCommand('SaveAs'); // 최초에는 iframe 에 이미지가 들어가 있지 않아서 2회부터 작동
}else{
var $a = $("<a>").attr("href", imageUrl).attr("download", fName).appendTo("body");// HTML 5 가 가능한 녀석들은 좋아..
$a[0].click();
$a.remove();
}
}
$(document).ready(function(){
if(/msie|trident/i.test(navigator.userAgent)) downloadImg();// 2번 호출해야 해서 여기에 기술했음.. 이제는 다운로드 해도
});
</script>
이미지가 변경되면 또 어떻게 코딩을 해야 할른지..
아니면, src 세팅을 한 다음 일정 시간을 정지하게 하고 이후에 execCommand() 를 실행..?
아무래도 iframe 안에 image 를 세팅하는 시간이 필요한 듯..
'Local Oriented > HTML CSS JS' 카테고리의 다른 글
form 배열 (0) | 2015.09.17 |
---|---|
cursor:hand 버리고 cursor:pointer 로 전환.. (0) | 2014.11.06 |
자바스크립트를 사용한 SNS 공유 (0) | 2014.10.29 |
페이스북 디버그 페이지에서 페이스북에 캐싱된 정보를 갱신/정정 (0) | 2014.10.28 |
자바스크립트로 모바일기기 체크 (0) | 2014.09.22 |