2017-04-12 75 views
0

我有兩個不同的window.open函數調用在Microsoft邊緣都沒有:MS邊緣 - window.open給出錯誤「該操作已被用戶取消。」

var canvas = document.getElementById("diagramCanvas"); 
var imgUrl = canvas.toDataURL("image/png"); 
window.open(imgUrl); 

window.open('data:application/vnd.ms-excel,' + encodeURIComponent($('#results').html())); 

他們都產生了錯誤:

操作已被取消用戶。

這看起來像一個彈出窗口攔截器,所以我禁用邊緣彈出窗口阻止兩者還是失敗,而與真實的URL討厭的彈出窗口就彈出:http://www.popuptest.com/

有沒有一種方法,使Edge中打開的JavaScript生成的文件在新窗口中?

回答

0

看起來問題可能是由於新窗口聲明中URL的長度。

我找到了一個解決辦法基礎上,這個問題的答案:

Download canvas to Image in IE using Javascript

從答案:

Example code:

$("#save").click(function(){ 
    var html="<p>Right-click on image below and Save-Picture-As</p>"; 
    html+="<img src='"+canvas.toDataURL()+"' alt='from canvas'/>"; 
    var tab=window.open(); 
    tab.document.write(html); 
}); 

通過打開一個新的窗口,然後寫在身上,URL長度的限制可以避免。

此格式適用於IE9 +和Edge以及Chrome(並且應該適用於所有其他現代瀏覽器)。

相關問題