2010-10-19 37 views
0

假设我有一个带有标题菜单的网页,当我点击标题菜单时,它会调用一个创建侧边栏的servlet。是否有可能没有使用document.getElementById?只需通过JavaScript模拟击键“标签”和“输入”,所以我不必点击菜单查看侧边栏?初始化关键笔划javascript

+0

您是想实际使用键盘进行导航,还是想要在给定链接上触发事件?你为什么要模拟击键?请清楚描述你想达到的目标。 – 2010-10-19 11:31:53

+0

在加载页面时,如果不知道元素的id,并且没有做任何事情,我想打开某个菜单链接。我认为我能做到的唯一方法就是模拟“tab”按键,从一个菜单链接移动到另一个菜单链接,并通过“enter”键击中通过javascript点击链接。 – ASC 2010-10-19 14:35:31

回答

0

你能描述一下你想要多做些什么吗?

我的理解是,你希望能够显示(也可以隐藏)与标签按钮的边栏。

你可以使用jQuery中的.keypress()函数 - http://api.jquery.com/keypress/

还检查了在NETTUTS本教程中,我认为这可能对您有用 - http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-keypress-navigation-using-jquery/

+0

嗨,例如:而不是点击菜单中的第三项,我想通过按三次然后按回车键来点击它。 – ASC 2010-10-19 06:57:26

0

您可以使用属性tabindex对使你的菜单的元素。

例如:<ul tabindex="1">...并在打开页面时将焦点设置为第一个。

当您按Tab键时,它们将充当表单字段。

那么对于进入的地方父节点上的单一的onkeyup听众共同所有菜单项:

menuParent.onkeyup = function(ev){ 
    var selectedMenu = ev.target || ev.srcElement, 
     keycode = ev.keyCode; 
     if(keycode === 13){ 
     //the user pressed enter 
     } 
    ... 
} 
+0

与tabindex混淆在您的危险中,如果更改时没有太多想法,它可能严重损害未知用户。在使用tabindex做任何事情之前阅读这篇文章:http://www.rnib.org.uk/professionals/webaccessibility/wacblog/Lists/Posts/Post.aspx?id = 41 – 2010-10-19 11:29:18

+0

@Mark,链接中描述的tabindex用法是关于表格。这里(从我的理解)不是关于输入字段,而是允许在菜单上进行键盘导航。 – Mic 2010-10-19 12:55:35

0

你可以做你想要使用什么样的JavaScript,但有一个更简单的方法来做到这一点比模拟击键。

我假设单击链接时发生的情况是调用JavaScript函数,这会导致子菜单出现。所有你需要做的是找出函数的调用是什么(让我们说这就是所谓的“callTheFunction”),然后调用它的onload,像这样:

<script type="text/javascript"> 
window.onload=callTheFunction; 
</script> 

希望这会给你的想法。如果您需要更多帮助,请提供网址或代码示例。

+0

嗨马克,我不能调用JavaScript,因为它在不同的域。我们正在尝试执行流程解决方法。 – ASC 2010-10-22 09:21:10

+0

一个不同的域名?菜单是否在iframe中,因此不属于DOM?你有这个问题的网址? – 2010-10-24 18:22:09