1:何らかのファイルを選択する。
2:再度選択ボタンを押した後にキャンセルする。
IEとFirefoxでは何も起きないが、Chromeではアラートが表示される。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript"></script>
</head>
<body>
<form>
<input type="file" id="Myfile" onchange=alert("ok")>
</form>
</body>
</html>
少し掘り下げて調査するため、ファイルを選択するとファイル名、選択されていない場合はメッセージを表示するHTMLを(サンプル2)、上記と同一手順で実行してみた。
IEとFirefoxではファイル名が、Chromeではメッセージ「nothing!」が表示される。
つまり、キャンセルした時、IE,Firefoxでは前回選択したファイル名を選択し続け、
Chromeでは何も選択していない状態に変わっている。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript">
function checkFile(){
var file = document.getElementById("Myfile").files[0];
if(file){
alert(file.name);
}else{
alert("nothing!");
}
}
</script>
</head>
<body>
<form>
<input type="file" id="Myfile" onchange="checkFile()")>
</form>
</body>
</html>
正しい挙動はどちらなのかは分からないが、揃えてほしいと思う。
面倒くせぇ。
なお、実施環境は下記。
OS: Windows 7 Progessional(64bit) Service Pack1
Firefox: 23.0.1
IE: 10.0.9200.16660
Chrome: 28.0.1500.95m
0 件のコメント:
コメントを投稿