var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
}
function valideMail(e){
createXMLHttpRequest();
var ename= document.getElementById("eName");
學習ajax時,寫了一段代碼:
<form action="" method="post">
<table border="1" width=100%>
<tr><td height=30>
使用者名稱稱是:<input type="text" name="eName" id="eName" onkeydown="valideMail(e);">
</td></tr>
<tr><td height=50>
<span id="show"></span></td></tr>
</table>
</form>
<script type="text/javascript">
var url = "example6-2a.php?ename=" + ename.value;
xmlHttp.onreadystatechange=callBack;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function callBack(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
document.getElementById("show").innerHTML="伺服器資訊:"+xmlHttp.responseText;
}
}
}
</script>
但在本機器(FreeBSD下FireFox2.0)上運行時,沒有得到預期的效果,輸入字元時無法顯示(伺服器資訊:****),在別人的機器上訪問我的伺服器,用IE或FF(3.0)都能正常工作。搜了一下,沒有得到滿意的答案。有一個解釋可能部分說明問題:
IE和Firefox下的onkeyup相容問題
在 做一個搜尋功能的時候,提交按鈕被我換成圖片,這時候想實現當使用者輸入完關鍵字後按斷行符號自動觸發提交,實現起來倒是簡單,但是後來發現Firefox對 event.keyCode並不感冒,google了一下,原來Firefox下不支援keyCode返回功能鍵的值,如下:
在IE下:
支援keyCode,不支援which和charCode,二者值為 undefined
在Firefox下:
支援keyCode,除功能鍵外,其他索引值始終為 0 ,支援which和charCode,二者的值相同
解決方案如下:
查看源碼 JAVASCRIPT
function EnterSubmit(){
var _key;
document.onkeyup = function(e){
if (e == null) { // ie
_key = event.keyCode;
} else { // firefox
_key = e.which;
}
if(_key == 13){
s_submit();
}
};
}
我感覺可能是瀏覽器版本問題,如果有認遇到過類似問題,或者知道原因,可以說明,謝謝。