除了浏览器嗅探,是否有一种方法来确定浏览器是否支持使用数据URI用于超链接?
这是背景:
我正在创建一个链接,该链接要么通过方便的数据URI下载由JavaScript生成的信息的CSV文件,要么(如果浏览器不支持使用数据URI用于超链接)生成所需内容的HTML表格。
现在,我的代码检查
这是背景:
我正在创建一个链接,该链接要么通过方便的数据URI下载由JavaScript生成的信息的CSV文件,要么(如果浏览器不支持使用数据URI用于超链接)生成所需内容的HTML表格。
现在,我的代码检查
window.URL
属性的存在,但在IE9及以下版本中不存在。(目前这个方法还可以使用,因为我需要支持的IE用户正在运行兼容模式,模拟IE8。)if(window.URL){
downloadLink.href = "data:text/csv;charset=utf-8," + encodeURIComponent(data);
downloadLink.setAttribute("download","download.csv");
}else{
downloadLink.href= "#";
downloadLink.innerHTML = "table view";
downloadLink.onclick = function(){
// build and display HTML table
return false;
};
}
然而,较新版本的Internet Explorer(10、11以及Edge)与此有些重叠,在支持window.URL对象的同时不允许使用数据URI作为超链接。
我该如何确保在不支持此功能的浏览器中永远不会显示下载CSV文件的链接?