Safari的XMLHttpRequest的send()方法支持File参数。 Firefox还没有(还)。
如何检查是否支持此功能?在Firefox中,它只会表现为传递空字符串。
我正试图避免进行浏览器版本检测。
编辑:FF 3.6似乎确实支持它,但问题仍然适用于旧版本或其他浏览器。
答案 0 :(得分:2)
如果可以创建File对象,则send可能会支持它。在Gecko(firefox)中将是真的(根据MDC,文件和发送的文件兼容性都在1.9中发布)
答案 1 :(得分:0)
答案 2 :(得分:0)
我认为你可能正在寻找这样的东西:
const XMLHttpFactories = [
function () { return new XDomainRequest(); },
function () { return new XMLHttpRequest(); },
function () { return new ActiveXObject("Msxml2.XMLHTTP"); },
function () { return new ActiveXObject("Msxml3.XMLHTTP"); },
function () { return new ActiveXObject("Microsoft.XMLHTTP"); },
];
var xhr = null;
for (var i = 0; i < XMLHttpFactories.length; i++) {
try { xhr = XMLHttpFactories[i](); break; } catch (exception) { continue; }
}
if (!(xhr && ('upload' in xhr) && ('onprogress' in xhr.upload))) {
alert("Sorry, your browser is not supported.");
return;
}
答案 3 :(得分:-1)
普通的旧浏览器嗅探无助吗? jQuery.support可能就够了吗?