• 解決済 sayamacraftsman

    (@sayamacraftsman)


    wisechatを使用していますが、ユーザーの皆さんから、誤送信を防ぐためEnterでは改行を行い送信しないようにして欲しいとの声が多く上がっています。設定の中にはそのような項目がないので、ソースコードをいじらなければならないのかもしれませんが、どうしたらよいか分かりません。ご教示下さい。

    ヘルプの必要なページ: [リンクを見るにはログイン]

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • CG

    (@du-bist-der-lenz)

    どういう方向で対応を、どのように進めていますか。

    トピック投稿者 sayamacraftsman

    (@sayamacraftsman)

    LINEのデフォルトと同じように、Enterを入力したときは改行が行われ、送信ボタンを押すと送信されるようにしたいのです。wisechatを使い慣れているので、ソースコードを変更して簡単に実現できるならそうしたいですが、難しければ、そういう仕様の別のプラグインに変えても良いと思っています。

    CG

    (@du-bist-der-lenz)

    「使い慣れているので」すから、継続して使っていいでしょう。
    インタフェイスが使い勝手良いのでしょうか。それはわたしが判断できることではないですし、「LINEのデフォルトと同じように、Enterを入力したときは改行が行われ、送信ボタンを押すと送信されるように」するのも技術上のことなので、参考にする対象としてあるので、子プラグインを作って、Enterキーを押すと送信されないように、送信ボタンを書き換えるか、jsでEnterキーを無効化するあたりから試みることになるでしょう。しかしそれが、難しいかどうか、わたしが判断するのは失礼なことではないですか。
    そういう仕様の別のプラグインが選択肢にあるのなら、それでも良いでしょう。

    プラグインのコードを変更することなく、対応するのはちょっと面倒そうです。
    プラグインのサポートページで要望をあげてみるのもいいかもしれません。
    https://wordpress.org/support/plugin/wise-chat/

    ソースコードをいじらなければならないのかもしれませんが、どうしたらよいか分かりません。

    プラグインのコードを直接変更することは、おすすめはしませんが、下記のように変更すると出来るかもしれません。

    wise-chat/js/ui/messages.js:

    function onInputKeyPress(e) {
    	if (e.which == 13) {
    		if (e.shiftKey) {
    
    			(省略)
    
    		} else {
    			sendMessage();
    		}
    	}
    };

    function onInputKeyPress(e) {
    	if (e.which == 13) {
    		//if (e.shiftKey) {
    
    			(省略)
    
    		//} else {
    		//	sendMessage();
    		//}
    	}
    };

    こんにちは

    苦肉の策満開ですが、以下のようにすればプラグインを編集せずにすみます。

    wp_enqueue_script('disable_enter', '/js/disable_enter.js', array('jquery', 'wise_chat_messages'));

    などで、以下の js ファイルを読み込ませます。
    ■ disable_enter.js

    jQuery(function ($) {
        $('input.wcInput').on('keypress', disable_enter)
    });
    
    function disable_enter(e) {
    
        jQuery('input.wcInput').off('keypress');
        jQuery('input.wcInput').on('keypress', disable_enter);
    
        if (e.which == 13) {
    
            if (e.shiftKey) {
                if (!isMessageMultiline) {
                    switchToMultiline();
                }
                fitMultilineTextInput();
    
                // move cusor to the end:
                if (!isMessageMultiline) {
                    messagesInput.focus();
                    var text = messagesInput.val();
                    messagesInput.val('');
                    messagesInput.val(text);
                    messagesInput.focus();
                }
            } else {
                // sendMessage();
            }
        }
    }
    トピック投稿者 sayamacraftsman

    (@sayamacraftsman)

    皆様、ご親切にご教示くださり誠に有難うございます。当方wordpressをツールとして使用しており、コーディングを深く理解する余裕もなかったので、大変助かります。近々、改修を実行してみたいと思います。

    トピック投稿者 sayamacraftsman

    (@sayamacraftsman)

    解決済みとさせて頂きます。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「wisechatでenterキーで送信されないようにする方法」には新たに返信することはできません。