2009-09-24 58 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

相关问题