2009-09-24 56 views
9

我使用自定義鍵盤編碼機頂盒的網絡入口。以編程方式將密鑰發送到輸入字段?

鍵盤有大部分標準字符鍵但沒有退格鍵!

由於還有一些其他的免費自定義鍵,我要地圖的其中之一,以退格鍵,當我在輸入字段或文本區域來的。

的問題是:如何編程方式發送退格輸入字段?

或與此有關:如何以編程方式發送的任何按鍵(如箭頭鍵)輸入字段?

+0

對不起。 STB =機頂盒。 – KaptajnKold 2009-09-24 16:09:25

回答

2

如果你在一個網頁瀏覽器,你可以不假實輸入事件,例如鍵盤和鼠標事件(出於安全原因)。

但是,您將能夠探測到其他的自定義鍵被按下,所以你可以爲你想使用,當你發現它被擠壓剛更新的輸入域密鑰的onKeyDown事件迴應...

+1

我希望它不會來,但我想這是唯一的解決方案,如果你說的是真的。 – KaptajnKold 2009-09-24 16:12:09

+0

你當然*可以*創建和發送事件。 – NickFitz 2009-09-24 16:24:58

0

這並不完全符合您的要求,但Control-H與大多數情況下的退格鍵相同。

+0

你是什麼意思,但「控制-H」,發送CTRL + H? – erm3nda 2015-02-13 05:39:28

+1

在我使用過的任何瀏覽器中,CTRL + H都會提供歷史記錄。 – PrinceTyke 2015-08-06 19:14:23

-2

使用onkeypress和JavaScript。在腳本中,您可以檢查輸入的映射到退格的字符,並使其對字段中的文本執行該操作。

5

假設瀏覽器支持W3C事件模型,您可以創建一個KeyEvent和調度,使用輸入字段的dispatchEvent方法。在mozilla.org上有example (using MouseEvent)。也有一些更多的鏈接超過where I last answered this question ;-)

UPDATE:下面的代碼已經在Firefox 3.5進行了測試,並通過在文本字段中的字符成功只後退:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 

<script type="text/javascript"> 

window.onload = function() { 
    var field = document.getElementById("foo"); 
    var button = document.getElementById("bar"); 
    button.addEventListener("click", function(event) { 
     var keyEvent = document.createEvent("KeyboardEvent"); 
     keyEvent.initKeyEvent("keypress", true, true, null, false, false, false, false, 8, 0); 
     field.dispatchEvent(keyEvent); 
    }, false); 
} 

</script> 

</head> 
<body> 
<div> 
<input type="text" id="foo" value="abcdef"> 
<button id="bar" type="button">Fire key event</button> 
</div> 
</body> 
</html> 
+0

不錯!非常感謝。 – KaptajnKold 2009-09-25 09:05:40

+0

唉!這在Opera或Webkit中不起作用。 – KaptajnKold 2009-09-25 09:22:57

+0

看起來像WebKit不支持initKeyEvent - 我會看看我能否找到解決方法。 – NickFitz 2009-09-25 09:48:42

相關問題