下面是我以前用到的鍵盤的js檔案:
/**<br /> *傳入所有的<tr>行的總數目,和捲軸能滾動的總高度<br /> * 每一個螢幕能顯示N行資料。每間隔N行,就翻動螢幕,滾屏<br /> *<br /> */<br />var setScollTop = function(nowNum, id) {<br />var totalHeight = (window.Height - $("#search").height() - $("#head").height()*2) / 2;<br />// alert("totalHeight=" + totalHeight);<br />var rowHeight= $("#body>tr:first-child").height();<br />// alert("rowHeight=" + rowHeight);<br />var rate= parseInt(totalHeight / rowHeight) - 2;<br />var times = parseInt(nowNum / rate);<br />var scrollTop = rowHeight * times * rate;<br />// alert(scrollTop);<br />// $("#" + id).scrollTop(scrollTop);<br />$("#" + id).animate({scrollTop: scrollTop}, 200);<br />}<br />/**<br /> *禁止通過上下鍵操作捲軸<br /> *<br /> */<br />var forbid = function() {<br />if (window.addEventListener) {<br />document.addEventListener("keydown", function(e) {<br />var keyCode = e.keyCode;<br />if (keyCode >= 37 && keyCode <= 40) {<br />e.preventDefault();<br />}<br />});<br />} else if (window.attachEvent) {<br />document.attachEvent("onkeydown", function(e) {<br />var keyCode = e.keyCode;<br />if (keyCode >= 37 && keyCode <= 40) {<br />e.returnValue = false;<br />}<br />});<br />}<br />}</p><p>/**<br /> * 使用者在按下左右鍵的時候,頁面左右移動<br /> * @return<br /> */<br />var horizontalMove = function() {<br />document.onkeydown = function(e){<br />forbid();<br />var e = e || event;<br />var ele = event.srcElement || event.target;<br />var id = ele.id;<br />if (ele.tagName != "TABLE") {//alert('no match');<br />id = ele.parentElement.parentElement.parentElement.id;<br />}<br />if (id == "up") {//使用者選擇的版塊頁面<br />var nowIndex = parseInt($("#up .select_bg").attr("class").substr(2));<br />var maxIndex = parseInt($("#up .select_bg").parent().children("tr:last-child").attr("class").substr(2));<br />} else if (id == "down") {<br />var nowIndex = parseInt($("#down .select_bg").attr("class").substr(2));<br />var maxIndex = parseInt($("#down .select_bg").parent().children("tr:last-child").attr("class").substr(2));<br />}<br />var currKey = e.keyCode || e.which || e.charCode;<br />if (currKey == 37) {//左鍵<br />if (id == "up") {<br />document.getElementById("first").scrollLeft -= 50;<br />} else {<br />document.getElementById("second").scrollLeft -= 50;<br />}<br />} else if (currKey == 39) {//右方向鍵<br />if (id == "up") {<br />document.getElementById("first").scrollLeft += 50;<br />} else {<br />document.getElementById("second").scrollLeft += 50;<br />}<br />} else if (currKey == 38) {//上方向鍵<br />var preIndex = nowIndex - 1;//上一行的索引值<br />if (preIndex < 0) return;<br />if (id == "up") {//使用者選擇的版塊頁面<br />$("#up .bk" + preIndex).addClass("select_bg");<br />$("#up .bk" + nowIndex).removeClass("select_bg");<br />window.select1 = $("#up .bk" + preIndex).attr("id");<br />bkInteraction(window.select1);<br />setScollTop(preIndex, "first");<br />} else if(id == "down"){//使用者選擇的個股頁面<br />$("#down .gg" + preIndex).addClass("select_bg");<br />$("#down .gg" + nowIndex).removeClass("select_bg");<br />window.select2 = $("#down .gg" + preIndex).attr("id");<br />ggInteraction(window.select2);<br />setScollTop(preIndex, "second");<br />}<br />} else if (currKey == 40) {//下方向鍵<br />var nextIndex = nowIndex + 1;//上一行的索引值<br />if (nextIndex > maxIndex) return;<br />if (id == "up") {//使用者選擇的版塊頁面<br />$("#up .bk" + nextIndex).addClass("select_bg");<br />$("#up .bk" + nowIndex).removeClass("select_bg");<br />window.select1 = $("#up .bk" + nextIndex).attr("id");<br />bkInteraction(window.select1);<br />setScollTop(nextIndex, "first");<br />// $("#up").focus();<br />} else if(id == "down"){//使用者選擇的個股頁面<br />$("#down .gg" + nextIndex).addClass("select_bg");<br />$("#down .gg" + nowIndex).removeClass("select_bg");<br />window.select2 = $(".gg" + nextIndex).attr("id");<br />ggInteraction(window.select2);<br />setScollTop(nextIndex, "second");<br />// $("#down").focus();<br />}<br />} else if (currKey == 13) {//使用者輸入的是斷行符號<br />if (id == "up") {//使用者選擇的版塊頁面<br />var nowIndex = "bk" + parseInt($("#up .select_bg").attr("class").substr(2));<br />} else if(id == "down"){//使用者選擇的個股頁面<br />var nowIndex = "gg" + parseInt($("#down .select_bg").attr("class").substr(2));<br />}<br />var selectId= $("." + nowIndex).attr("id");<br />var quote = external.createObject("Quote");<br />var obj= {};<br />obj.id = 379;<br />obj.code = selectId;<br />obj.period= 68040;<br />quote.switchPage(obj);<br />}<br />e.stopPropagation();<br />}<br />}