10 May 2005
This post may be outdated due to it was written on 2005. The links may be broken. The code may be not working anymore. Leave comments if needed.

问题

用过 QQ 的人都熟悉用 Ctrl+Enter 来发送信息。
网上大部分论坛程序都支持用 Ctrl+Enter 发表帖子,不过当我使用 Firefox 时,大部分论坛(我知道的都不成)这个功能都实效了。
跟 Joe 在 IRC 里说起 Gmail 的 hotkey, 发现在 Firefox 里也是可以使用的。不过找不到 Gmail 的源代码,还好可以用 Google

解决方案


<script type="text/javascript">
var x,q;

function ctlent(e){
  if (document.all){
    x = window.event.keyCode;
    q = event.ctrlKey;
  } else {
    x = e.keyCode;
    q = e.ctrlKey;
  }
  if (q && x==13) {
    this.document.FORM.submit();
    this.document.FORM.Submit.disabled = true;
  }
  if (!document.all){
       window.captureEvents(Event.KEYPRESS);
       window.onkeypress = ctlent;
  }else{
       document.onkeypress = ctlent;
  }
}

function submitonce(form){
    for (var i=0;i<form.elements.length;i++) {
        var e=form.elements[i];
        if(e.type.toLowerCase()=="submit") e.disabled=true;
    }
}
</script>
<form name="FORM" onSubmit="submitonce(this)">
<textarea cols=75 name=inpost onKeyDown="ctlent(event)" rows=7></textarea>
<INPUT name="Submit" type=submit>
</form>

Refer



blog comments powered by Disqus