0

私の会社は内部 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-- これらのリスナーを参照する名前がないため、機能しません

私はほとんどアイデアがありません。

4

1 に答える 1

0

あなた$はjQueryではありません。

書く jQuery('#markupTextarea').unbind('select')

于 2011-06-24T18:07:25.403 に答える