2017-04-12 74 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(并且应该适用于所有其他现代浏览器)。

相关问题