[?]絵文字の隙間詰め

  • // @title [?]絵文字の隙間詰め
    // @description カスタム絵文字の後ろについているスペースをゼロ幅スペースに変換します。
    // @include https://*/web/*
    // @license MIT License
    // @javascript_url
    
    ((
     t = document.querySelector('.compose-form textarea'),
     b = s => s.replace(/[^\r\n]/g, '')
    ) => { if (t) {
    
    	// https://github.com/vitalyq/react-trigger-change/blob/v1.0.2/lib/change.js#L135-L140
    	// が動かなくなったから
    	// https://github.com/facebook/react/issues/11095
    	// にした
    	Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t), 'value').set
    	 .call(t, t.value
    	  .replace(/(\s*)(:[-\w]+:)(\s*)/g, (_, p, c, s) => `${b(p)}\u200b${c}\u200b${b(s)}`)
    	  .replace(/\u200b+/g, '\u200b'));
    	t.dispatchEvent(new Event('input', { bubbles: true }));
    
    }})();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2018/09/18 23:25:06 - 2018-09-18
  2. 2018/02/17 10:16:25 - 2018-02-17
  3. 2017/10/31 19:14:25 - 2017-10-31
  4. 2017/10/31 19:11:28 - 2017-10-31