私の会社は内部 wiki に Confluence を使用していますが、これは問題ありませんが、エディターにはいくつかのキーボード ショートカットがバインドされているため、壁を突き破ることができます。特に、システムのデフォルトの動作である「kill line」を尊重したい場合は、「insert link」に ^K を使用します。
リスナーを挿入する関連コードを追跡しました。
$("#markupTextarea").select(function () {
AJS.Editor.storeTextareaBits(true);
}).keyup(function (e) {
AJS.Editor.contentChangeHandler();
if (e.ctrlKey) {
if (e.keyCode == 75) {// bind ctrl+k to insert link
return openLinkPopup(e);
}
if (e.keyCode == 77) {// bind ctrl+m to insert image
$("#editor-insert-image").click();
return false;
}
}
}).keydown(function (e) {
// prevent firefox's default behaviour
if (e.ctrlKey && e.keyCode == 75) {
return AJS.stopEvent(e);
}
}).change(function () {
AJS.Editor.contentChangeHandler();
});
文脈上、TinyMCE のカスタマイズされたバージョンを使用しているようです。理想的には、これらのイベント リスナーを無効にする Chrome 用のユーザー スクリプトが必要ですが、Chrome JS コンソールでイベント リスナーに対して何かを実行しても、イベント リスナーを削除することはできません。
私が試したこと(主に他の人の提案によるものです。私は正確には優れたJSハッカーではありません):
$('markupTextarea').unbind('select')
-- 言うObject #<HTMLTextAreaElement> has no method 'unbind'
$('markupTextarea').removeEventListener
-- これらのリスナーを参照する名前がないため、機能しません
私はほとんどアイデアがありません。