0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[小ネタ] NewRelic コンソールのショートカットキー上書きを無効化する

Posted at

環境

  • Chrome: 110.0.5481.177
  • Tampermonkey: 4.18.1

ショートカットは上書きされたくない

私はかつて Emacs 原理主義者だったこともあり Ctrl+K は kill-line の動作をしてくれないと落ち着きません。

しかし NewRelic コンソール 上で Ctrl+K を押すと・・・

な、なんじゃこりゃぁぁ:fearful::fearful::fearful:
そういうの、いいから:sweat:

Tampermonkey の UserScript で上書きを防止する

Tampermonkey は UserScript でブラウザの動作をカスタマイズできる Chrome 拡張です。
これを使って、お呼びでないショートカットの上書きからブラウザを保護します。

開発者ツールで確認すると、件のショートカットは keydown イベントで発火しているようなので、addEventListener で keydown イベントを上書こうとする振る舞いを無理やり無視させます。
スクリプトは以下。
他にも巻き添え食ってるイベントあるかもしれないけど、知らん。

protect_newrelic_shortcut_hijack.user.js
// ==UserScript==
// @name         Protects keyboard Hijacking on NewRelic website
// @namespace    https://github.com/takeyoda/
// @version      0.1
// @description  Protects keyboard hijackiing on NewRelic website
// @author       takeyoda
// @match        https://one.newrelic.com/*
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function() {
  'use strict';
  const orig = EventTarget.prototype.addEventListener;
  orig('DOMContentLoaded', function() {
    EventTarget.prototype.addEventListener = orig;
  });

  EventTarget.prototype.addEventListener = function(type, listener, useCapture) {
    if (type === 'keydown') {
      console.log('Shortcut HIJACKING detected!', type, listener, useCapture);
    } else {
      orig(type, listener, useCapture);
    }
  };
})();

私見

やれやれ。せめて User Preference で On/Off 切り替えられればいいのに。
OS やブラウザが設定しているショートカットを尊重しない Web サイトって Bad UX なのでは?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?