HTML/Javascript:将键盘笔划输出到 URL 参数
HTML/Javascript: Outputting keyboard strokes to URL Parameters
我将首先解释我的总体目标,然后是问题本身。
总体目标:
将命令发送到连接到路由器的 Arduino 板。计算机将通过wifi连接到路由器。Arduino将提供一个本地网站,计算机将使用该网站向Arduino发送按键。根据按键的不同,Arduino将以某种方式运行。
向Arduino发送命令的一种方法是使用Arduino所服务的网站URL末尾的参数。Arduino可以读取这些参数。我对此没有问题。
Arduino能够为使用Javascript/HTML/CSS等编码的网站提供服务。
问题:
我已经使用Javascript一个星期了;但到目前为止,我有以下代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function Submit()
{
document.forms['myform'].submit();
}
document.onkeydown = function(event) {
var key_press = String.fromCharCode(event.keyCode);
var key_code = event.keyCode;
document.getElementById('kp').innerHTML = key_press;
document.getElementById('kc').innerHTML = key_code;
var t=setTimeout("Submit()", 500);
}
</script>
</head>
<form name='myform' method='GET'>
Key Pressed : <span id="kp" name="KP"></span>
<br />
Key Code : <span id="kc" name="KC"></span>
</form>
</html>
有了这个,我能够从我点击的键盘上看到按键的"键代码"。网站将看到按键,输出按键代码和实际按键。
我把设置的超时函数放在那里,这样当我按住键时,页面以较慢、恒定的速率刷新。
我知道HTML中的某些东西会自行创建和管理参数。例如,下拉框。据我了解,当下拉框放入
<form method='GET'></form>
标记中,您可以创建参数。文本框也会做同样的事情。然后,如果一个人"提交"网页,那么这些对象中的调整值将出现在URL的参数中。
但是,我不知道如何将键代码的值输出到对象,然后提交页面以实时将值复制到 URL 参数。
实时:例如,我的意思是在按"向上"时继续发送命令,并在释放时停止。
我能够通过在文本框中键入一个字母并使用提交按钮在 URL 参数中输入值来执行此操作的粗略版本。但是,我不能包含向上或向下箭头,我希望网页实时自行提交。
TLDR : 如何使用键盘上的键码实时控制URL中的参数?
非常感谢您阅读本文。非常感谢所有回复。
编辑 5/15/12 web_bod给了我一些有用的代码。以下是完整的新代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function Submit()
{
document.forms['myform'].submit();
}
document.onkeydown = function(event) {
var key_press = String.fromCharCode(event.keyCode);
var key_code = event.keyCode;
document.getElementById('kp').innerHTML = key_press;
var t=setTimeout("Submit()", 500);
}
</script>
</head>
<body onLoad='document.myform.KP.focus()'>
<form name='myform' method='GET' action="ENTER URL HERE">
Key Pressed : <input type="text" id="kp" name="KP"></span>
</form>
</body>
</html>
我让网页聚焦在文本框上。没有它,我必须单击文本框,然后代码最终会注册。
其表现如何:当网页加载时,页面将自动聚焦在文本框上。它等待按键。按一个键:页面将在半秒后将参数的字母加载到 URL 中(您可以使用 setTimeout(( 使其响应更快(。该键将保留在参数中,直到按下另一个键。
我知道乞丐不能成为选择者,但我希望它执行"视频游戏风格",其中动作进行很长时间,我按下一个键,动作在我松开键的那一刻停止。在这种情况下,如果您按住某个键,文本框将填充字母,然后提交。这是行不通的,因为我希望Arduino寻找单个字符,而不是字符列表。然而,到目前为止,这真的很棒。我当然不介意实现这一点。
然而,正如Tim所提到的,我一直在对套接字通信进行大量研究。这似乎是一条很好的道路,Arduino Ethernet Shield使用UDP库,到目前为止,我唯一的困难是设置客户端。Arduino是服务器。发生这种情况的任何事情,我都会进行编辑。
你的跨度:
<form name='myform' method='GET' action="scriptURL">
Key Pressed : <input type="text" id="kp" name="KP"></span>
<br />
Key Code : <input type="text" id="kc" name="KC"></span>
</form>
(这将生成一个看起来像:脚本网址?KP=xxx&KC=yyy(
如果你想要一些非常轻量级的东西,那么怎么样:
<script>
document.onkeydown = function(event) {
var key_press = String.fromCharCode(event.keyCode);
var key_code = event.keyCode;
document.getElementById('img').src = "scriptURL?KP=" + key_press + "&KC=" + key_code;
}
</script>
<img src="scriptURL" id="img" style="display:none;"/>
每次按键都会触发图像的重新加载(它是隐藏的(,无论返回的数据如何,服务器上的脚本都将实时接收 KP 和 KC 参数。
- 将从 URL 输出的 JSON 保存到文件 javascript
- 正在将URL转换为具有相同的输出
- 将HTML中Javascript的URL输出插入为HREF
- 从流播放器输出当前剪辑文件名或 URL
- 输出代码后更改链接中的 URL
- 在事件发生时获取元素位置的当前页面 URL,并将该 URL 输出到另一个页面上
- HTML/Javascript:将键盘笔划输出到 URL 参数
- 如何根据 URL 的输出设置 JavaScript 数组
- 分别设置输出文件夹和文件 url;带有 Django 的 Webpack 文件加载器
- 如何使用这些Node模块通过文件或URL接受HTML,然后输出JSON作为现有HTML元素的验证
- 如何检查已创建 URL 的输出
- 我的代码URL输出是不正确的
- Javascript连接字符串和变量来创建url -但不输出'/"斜杠
- 使用Javascript将URL变量输出到字符串,然后在iframe中使用该字符串
- 如何以字符串形式输出JSON请求URL
- 如何复制/获取当前标签url在chrome和输出弹出窗口
- 当url生成PDF输出时,Iframe onload不工作
- 将输出图像设置为当前URL链接
- 调用javascript函数将url输出到ruby/html中
- 从返回JSON的url输出文本