1
4

5 回答 5

4

它为我工作

 <a href="javascript:search();"  onkeypress="return runScript(event);">Open in new window using javascript</a>

脚本

 window.runScript = function (e) {

       if (e.keyCode == 13) {
           alert('ss');
           return false;
       }
       else {

           return true;
       }
   }

   window.search = function () {
       alert('s');
   }

现场演示小提琴

于 2012-03-11T08:49:15.950 回答
3
于 2012-03-11T08:27:10.890 回答
2

ENTER 键实际上触发了 onclick 事件:

<a href="#" onclick="alert('hello!');">

这意味着您在 href 中的 search() 函数将在 onkeypress 事件之前执行。

于 2012-03-11T08:06:25.303 回答
1

这在我的浏览器中有效,尽管我怀疑这不是实现你真正想要做的事情的方法......(也许?)

第一,你可能不希望它“ return”任何东西,所以你可以这样做onkeypress="runScript(e)",它会运行。如果该函数确实返回一个值,它不会去任何地方......

第二,keydown 事件很少会在锚<a>(当前有键盘焦点,如果它不只是整个页面)。您是否希望在有人在搜索框或其他内容中输入后按 Enter 键时运行您的脚本?<input id="mySearchBox" onkeydown="runScript(e)">如果是这样,您可能希望在搜索框本身上监听事件,因此如果您只想在用户按下回车时运行它,则将其添加为该元素的 onkeydown 属性(例如:) ,而不管焦点或键入文本到任何特定字段,只需按照 edmastermind29 的评论所说的将事件侦听器添加到整个文档中。

于 2012-03-11T09:43:19.257 回答
0

您是否尝试将其添加到您的脚本中?

document.onkeypress = runScript;

于 2012-03-11T08:02:19.173 回答