textbox1.js
3.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
//グローバル変数の定義
var httpObj; // HTTP通信用オブジェクト
var timerId; // HTTP通信用タイマーオブジェクト
var timeout_sec = 10; // HTTP通信タイムアウト秒数
// テキストの内容をテキストボックスにセットする
function printItemList() {
// 商品コードの入力文字を取得
var in_code = document.getElementById('code').value;
var target_url;
if(in_code == 'a' || in_code == 'b' || in_code == 'c') {
target_url = in_code + '.txt';
} else {
return false;
}
// 処理を実行するための関数リファレンスを定義
var funcRef = function(text_data) {
var lines = text_data.split("\n");
var parts = lines[0].split(",");
document.getElementById('code').value = parts[0];
document.getElementById('item').value = parts[1];
};
// HTTP通信を開始し、完了したら上記関数を実行させる
httpRequest(target_url, funcRef);
}
// 引数に与えられたURLにHTTPリクエストを行ない、指定された関数を実行
function httpRequest(target_url, funcitonReference) {
try {
if(window.XMLHttpRequest) {
httpObj = new XMLHttpRequest();
} else if(window.ActiveXObject) {
httpObj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
httpObj = false;
}
} catch(e) {
httpObj = false;
}
if(! httpObj) {
httpObjGenerateFail();
}
// タイマーをセット
timerId = setInterval('timeoutCheck()', 1000);
httpObj.open("GET", target_url, true);
httpObj.onreadystatechange = function() {
if (httpObj.readyState == 4) {
clearInterval(timerId);
if (httpObj.status == 200) {
funcitonReference(httpObj.responseText);
} else {
alert(httpObj.status + ' : ' + httpObj.statusText);
return false;
}
}
}
httpObj.send('');
}
// XMLHttpRequestオブジェクト生成に失敗した場合の処理
function httpObjGenerateFail() {
alert('ご利用のブラウザーでは、当サイトをご利用頂けません。');
return false;
}
// HTTPタイムアウト処理
function timeoutCheck() {
timeout_sec --;
if(timeout_sec <= 0) {
// タイマーをストップする
clearInterval(timerId);
// HTTPリクエストを中断する
httpObj.abort();
// エラーダイアログを表示
alert('タイムアウトです。');
return false;
}
}
// イベントリスナーをセットする
function setListeners(e) {
var code = document.getElementById('code');
addListener(code, 'keyup', printItemList, false);
}
function addListener(elem, eventType, func, cap) {
if(elem.addEventListener) {
elem.addEventListener(eventType, func, cap);
} else if(elem.attachEvent) {
elem.attachEvent('on' + eventType, func);
} else {
alert('ご利用のブラウザーはサポートされていません。');
return false;
}
}
// HTMLがロードされた際に、setListeners()関数を実行させる
addListener(window, 'load', setListeners, false);