ひらい ぶらり Hi-Library

ぷろぐらみんぐについて。ときどきどうでもいいことについて。

Trelloが日本語変換確定のEnterでカードが作成されてしまう対策

※ 2019/05/10 追記 直ったようです

原因はよくわかっていないけれど、MacWebKit系のブラウザで表題のような現象が起きている。
(つまりChromeSafariFirefoxなら平気)
デスクトップアプリ も大丈夫なようです。コメントで教えていただきました。(2019/05/08追記)
※ デスクトップアプリも同様の現象が発生するようになってしまったようです・・・。
正確にはカードが作成されるのではなく、Enterイベントが発火してしまうっぽい。詳細画面のタイトルや、チェックリストアイテム欄とかでも同様のことが起きる。(なぜかチェックリスト作成では平気)
underscore.js のイベントのうち、いくつかをremoveしてみると発生しないので該当のイベントだけ消してみようかとしたけど別なところでやっぱり不具合が起きるので断念。
結局、window.keydown で 日本語入力のキーコード(229)の場合は全てのイベントを殺すことで回避するというパワープレイで解決(?)。
userscriptでやろうとしたら、該当ページのjqueryオブジェクトやイベントにアクセス出来なかったので、tampermonkey経由で実行。

一応手順を残しておくけれども、もし使う人がいたらゴリゴリのパワープレイなので自己責任でお願いいたします。
(Trello側の修正が入ったら、このScriptは無効にすることをおすすめします)

  1. tampermonkeyをダウンロード
    chrome.google.com
  2. 以下のスクリプトを追加
// ==UserScript==
// @name         FixTrello
// @namespace    http://shinbashi.hatenablog.com/
// @version      0.1
// @description  Fix trello enter bug
// @author       shinbashi
// @include    https://trello.com/*
// @grant        none
// ==/UserScript==

$(function(){
    window.addEventListener('keydown', (e) => {
        if (e.keyCode === 229) {
            e.stopPropagation();
            e.preventDefault();
        }
    }, true);
});

3 Trello開いてたらリロード