我想首先说我现在并不需要任何代码。最有可能的是,我只需要一个起点。
我正在尝试构建一个浏览器扩展程序(chrome),这将允许我使用键盘键来导航一个特定的页面。
此页面正在游戏中(http://www.galatium.net/Faerlyn/forest.php?view=explore) 如果你想看,你必须注册,所以我只是描述它。
它是一个3x3网格的可点击框(不是真正的按钮......)。中间的盒子是不可点击的。
游戏创建者使用JS(onClick事件)来导航该区域(交互式森林)。
我要做的是将每个框的onlick事件绑定到键盘键。
基本上我们有:
北= 8
南= 2
东= 6
西= 4
西北= 7
西南= 1个
东北地区= 9
东南亚= 3
Numpad Directions
现在通过各种研究我已经了解到我需要使用内容脚本将我的javascript注入到我希望这个工作的网页上。
问题在于每个方框都由这行代码决定:
<td bgcolor="#002900" style="cursor: pointer; background-color: rgb(0, 41, 0);" onmouseover="style.backgroundColor='#003300'" onmouseout="style.backgroundColor='#002900'" onclick="window.location='?action=move&x=332&y=96'"> </td>
这条线本身并不复杂,但我已经习惯了OOP,而我并没有理解我如何引用它。
我正在考虑这样做:
说这是我的JS功能:
function DoSomething() {}
$(document).ready(function() {
$("body").keydown(function(event) {
if(event.keyCode == arrow.left) {
DoSomething();
}
}
}
代码不包含它,但会有一个GET,它将获得当前的X和Y值,然后根据所选方向加或减一个。
因此,DoSomething()
将有一个名为&#34; direction&#34;。
然后在按键事件上,我的功能将&#34;点击&#34;在与我的函数的X和Y匹配的框上。
所以,对于北方,首先我得到一个得到x = 10和y = 10的得分。然后知道我已经击中&#34; 8&#34;,它将设置x = 10和y = 10 + 1。然后该函数将找到其参数与我的函数的参数匹配的框,并且&#34;单击&#34;在它上面。
我这样做了吗? (或者有更简单的方法吗?)
〜哈姆扎
答案 0 :(得分:0)
您正在使用<table>
在此表中有3 <tr>
在每个<tr>
中有3个容器
为您提供13个可选目标。
使用jQuery,你可以做几件事:
您可以为每个人分配一个唯一的id
或class
按键()操作/选择数字键盘上96到105的键码。您可以使用键盘映射操作。
不清楚你的行为是否会对行动做出承诺。
示例:您是否正在处理弹出到屏幕上的内容,然后您必须快速定向移动?方向键但没有提交按键。
示例2:你有一个像拼图一样的可移动价格网格,但是你需要在你选择方向之前绑定一个选择,然后取消选择以自由导航到另一个重新选择...移动...取消选择...移动。 ..select。
示例3:您需要在示例2中执行操作,但您必须更换磁贴并记住您的起始位置以填充已删除的peice。所以零件改变了位置。意味着你被赋予了一组无法摧毁的作品。他们只能改变立场。
使用按键和键映射以及唯一的ID或类以及选择/取消选择,您可以绑定一组事物,但您需要确定事件的最终结果。
如果你不能在表上使用唯一的id或class,你可以使用parent,sibling,child jQuery选择器。
下一篇:<td>
内的内容是什么?它是图像还是背景颜色?您可以指定引用图像或颜色的css类/ id。这样你就可以找到你的辅助选择器来移动,移除,保持或销毁,追加。
您可以使用指定的class / id或parent,sibling,child来获取容器标记的内容。从那里你必须自己回答你想要做什么...最终结果。一个人如何赢或输。