【发布时间】:2009-05-25 13:33:25
【问题描述】:
当用户按下键盘上的某个键时,是否有人能够 - 执行 - 生成的 Ajax.ActionLink?(这是辅助功能所必需的)
注意:我使用的是 ASP.NET MVC + Microsoft Js 库(...Ajax.js / ...MvcAjax.js)+ jQuery
Javascript 来捕获按键(IE + Firefox)
$(document).keypress(function(event) {
if(event.keyCode == 27) {
//execution here
var a = document.getElementById('linkid');
}
});
ASP.NET MVC 生成的 HTML (Ajax.ActionLink())
<a id="linkid" href="/controller/action" onclick="
Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event),
{ insertionMode: Sys.Mvc.InsertionMode.replace,
updateTargetId: 'SomeDivId' });
">LinkText</a>
以下不是我要找的,这行不通!
$(document).keypress(function(event) {
if(event.keyCode == 27) {
var a = document.getElementById('linkid');
a.onclick(); //doesn't exist in Firefox
a.click(); //doesn't "work" in Firefox (reference to "this" [a] is needed .NET MVC javascript)
a["onclick"](); //same as .onclick()
a["click"](); //same as .click()
//or even:
a.onclick.apply(a); //doesn't exist in Firefox
a.click.apply(a); //Somehow keeps "this" reference, but throws Sys.ArgumentUndefinedException
}
});
【问题讨论】:
标签: asp.net-mvc ajax keyboard-shortcuts accessibility actionlink