小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


ExcelのCtrl + ;キーで現在日を入力するショートカットをブラウザでやってみた。

ExcelでCtrl + ;キーを押すと、今日の日付が入力されます。結構便利で、よく使うのですが、ブラウザでもあれをやってみたいと思い、ユーザスクリプトで作ってみました。

InsertTodayShortcut(IE限定)
// ==UserScript==
// @name           InsertTodayShortcut
// @description    http://d.hatena.ne.jp/replication/
// @include        *
// ==/UserScript==

document.body.attachEvent("onkeydown", function() {
  // Ctrlボタンが押された場合
  if (event.ctrlKey) {
    // ;キーが押された場合
    if (event.keyCode == 187) {
      if (document.activeElement.type == "text") {
        var now = new Date();
        var year = now.getYear();
        var month = now.getMonth() + 1;
        var day = now.getDate();
        document.activeElement.value = year + "/" + month + "/" + day;
      }
    }
  }
});

IEの場合、現在フォーカスがあたっている要素を取得するには、document.activeElementを使用します。現在フォーカスがあたっている要素がテキストボックスであれば、現在の日付を挿入します。

あとがき

このユーザースクリプトを作っているうちに気づいたのですが、Ctrl + ;を押すとIEのズーム機能が動作してしまって、拡大率が120%になってしまいます。このイベントをキャンセルする方法を探したのですが、分かりませんでした。