ie8 でファイルを選択するには、isInput 関数の 2 番目のステートメントを else if ではなく if にする必要がありました。
qq.isInput = function(maybeInput) {
if (window.HTMLInputElement) {
if (Object.prototype.toString.call(maybeInput) === '[object HTMLInputElement]') {
if (maybeInput.type && maybeInput.type.toLowerCase() === 'file') {
return true;
}
}
}
//else if (maybeInput.tagName) {
if (maybeInput.tagName) {
if (maybeInput.tagName.toLowerCase() === 'input') {
if (maybeInput.type && maybeInput.type.toLowerCase() === 'file') {
return true;
}
}
}
return false;
};
この変更は意味がありますか?それとも何か他のものを壊しますか?
ie8 で JavaScript をデバッグしていたとき、関数は「window.HTMLInputElement」チェックに成功していましたが、「Object.prototype.toString.call(maybeInput) === '[object HTMLInputElement]'」チェックに失敗していました。
IE8 ウィン XP SP3