次のコードを検討してください。
index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<form>
<button id="getInfoButton1"></button>
<input type="button" id="getInfoButton2"></input>
</form>
</body>
</html>
付随するJavaScriptファイルを使用して:
script.js
window.onload = initAll;
var req;
function initAll()
{
document.getElementById("getInfoButton1").onclick = getInfo;
document.getElementById("getInfoButton2").onclick = getInfo;
}
function getInfo()
{
req = new XMLHttpRequest();
var URL = "index.html";
req.open("GET", URL, true);
req.onreadystatechange = whatsTheStatus;
req.send(null);
}
function whatsTheStatus()
{
if (req.readyState != 4) { return; }
alert(req.status);
}
(コードを大幅に削減しましたが、この例でもエラーが強調されています)
問題はこれです:これをロードして両方のボタンをクリックすると、最初のボタンはステータス0を表示し、2番目のボタンはステータス200を表示します。
もちろん、両方とも200を表示することを期待していますが、なぜ<button>
が異なる動作をするのかわかりません。それほど大したことではありませんが<button>
、サイト全体で同じように使用したいと思います。
私はウェブを見て、私の会社の他の開発者に尋ねましたが、答えが見つからないようです。何か案は?
それが役に立ったら、私はFirefox3.6.8でテストしています。また、ローカルホストからWAMPserver2.0経由で実行しています。