2010/08/09

[JavaScript][html]FileAPIのエラーに関して

先日の[JavaScript][html]FileAPIを使うを書いていたときに参考にしたHTML5サンプル集に関してなのですが、下のようなプログラムが紹介されていました。

function readFile(file, contentArea) {
var reader = new FileReader();
reader.onloadend = function(e) {
contentArea.textContent = reader.result;
};
reader.onerror = function() {
switch (reader.error.code) {
case FileError.NOT_FOUND_ERR:
alert("ファイルが見つかりません:" + file.name);
break;
case FileError.NOT_READABLE_ERR:
alert("ファイルを読み込めません:" + file.name);
break;
case FileError.SECURITY_ERR:
alert("セキュリティエラー:" + file.name);
break;
case FileError.ABORT_ERR:
alert("読み込みが中断されました:" + file.name);
break;
case FileError.ENCODING_ERR:
alert("不正なエンコーディングです:" + file.name);
break;
}
};
var encodingList = document.getElementById("encoding");
var encoding = encodingList.options[encodingList.selectedIndex].value;
reader.readAsText(file, encoding);
}

via:File APIのサンプル

ここでものすごく気になったのは、そもそも「FileError.ENCODING_ERR」をどうやって発見したのだろうか?

仕様書にあるのかなーっと探したところありました。

interface FileError {
// File error codes
// Found in DOMException
const unsigned short NOT_FOUND_ERR = 8;
const unsigned short SECURITY_ERR = 18;
const unsigned short ABORT_ERR = 20;

// Added by this specification
const unsigned short NOT_READABLE_ERR = 24;
const unsigned short ENCODING_ERR = 26;

readonly attribute unsigned short code;
};

via:9.1. The FileError Interface

仕様書による裏づけが取れたので、これで遠慮なく使うことができます。

0 コメント:

コメントを投稿