昨天寫了好幾個這樣的函數,每個都採用了不同的辦法來實現,這兩個是比較完美的,個人感覺還是SaveAs5最好,簡潔優美。
這兩函數共同存在的問題,在IE6 SP1下跨域引用的圖片會出錯。IE的安全機制問題,估計沒法解決了。
function SaveAs4(imgURL)
{
var oPop = window.open("","","width=1, height=1, top=5000, left=5000");
oPop.document.open();
oPop.document.writeln("<script>");
oPop.document.writeln("function SaveAs(){document.frames('tempFrame').document.execCommand('SaveAs');self.close()}");
oPop.document.writeln("</script>");
oPop.document.writeln("<iframe src='" + imgURL + "' id='tempFrame' onload='SaveAs()'></iframe>");
oPop.document.writeln("<input type='button' value='download' onClick='SaveAs()'>");
oPop.document.close();
}
function SaveAs5(imgURL)
{
var oPop = window.open(imgURL,"","width=1, height=1, top=5000, left=5000");
for(; oPop.document.readyState != "complete"; )
{
if (oPop.document.readyState == "complete")break;
}
oPop.document.execCommand("SaveAs");
oPop.close();
}