リッチエディターの判定について

リッチエディターの判定についてです。

edit.submitのタイミングでリッチエディターに文字が入力されているのか判定したいのですが、空であっても「<div><br></div>」がはいっています。

なので、値が<div><br></div>であれば空と見なすという判定もできるのですが、空であれば必ず<div><br></div>というのはkintoneの仕様に左右されるので、いつか仕様変更がはいる可能性があるかと思っています。

なにかいい方法はありませんでしょうか。

mikanさん

> 空であれば必ず<div><br></div>というのはkintoneの仕様に左右される

このタグ自体htmlの内容ですので、個人的にはkintone側での仕様変更は考えにくいのではと思いました。

(あえて変更加わるとしたらどんなパターンだろう、と考えてみても…思いつかずでした。デフォルト文面変更とか…??)

ですので、現状はmikanさんの提唱される方法で対応可能であれば良いと思います!

 

また、既存で認識されていない仕様変更の可能性についてであればフォーラムより公式に直接問い合わせた方が確実、と思います。

高田さん

 

ありがとうございます。

やはり他にはなさそうですよね。

もう少し検討してみます!

リッチエディターの空判定でハマっています。

何かのタイミングで空で「<div />」が渡ってくるようになってしまっています。といいますか必ず「<div />」が入ってくるレコードになってしまっているのがあります。ほかレコードは空の場合に「<div></ br></div>」が渡ってきます。

値を入れたり、削除したり何度更新しても直りません。

レコードが壊れているかと思いますが、リッチエディターの仕様はどこかに記述されていますでしょうか。

宇賀神実さん

> 何かのタイミングで空で「<div />」が渡ってくるようになってしまっています。

リッチエディターのフィールドにて、BackspaceもしくはDeleteキーの操作が行われると<div />のみが入るようになることを確認しました。

 

> 値を入れたり、削除したり何度更新しても直りません

初期値の復旧方法として<div />になってしまっているレコードをCSV出力して、<div></ br></div>へ置き換え後にCSV読込みさせて

みるとどうでしょう?

(今後同じように<div />のみが入ってしまった場合の空判定方法を考慮する必要有りかもですが・・・)

 

高田さん

ご確認ありがとうございます。

> 初期値の復旧方法として<div />になってしまっているレコードをCSV出力して、<div></ br></div>へ置き換え後にCSV読込みさせて

みるとどうでしょう?

開発用のアプリなのでとりあえずはそのままで問題ないです。ありがとうございます。

 

> (今後同じように<div />のみが入ってしまった場合の空判定方法を考慮する必要有りかもですが・・・)

空である判定のほかに問題になるのが、一度「<div />」が入ってしまうとその後にリッチエディターに値をいれても「<div />」取れないので、デザインに当て込んだときにデザインが崩れてしまう現象が起きています。

そのため、取得したレコードの値から「<div />」を削除して評価する必要がありそうです。

 

そもそも kintone 側で空にして返してほしいというか、どういう場合に何が返るのか仕様をわかりやすく明記してほしいものです。

でないと仕様なのかもわからない。

 

 

高田さん

>リッチエディターのフィールドにて、BackspaceもしくはDeleteキーの操作が行われると<div />のみが入るようになることを確認しました。

再現できないのですが、具体的にどのような操作を行うのかご教授いただけますでしょうか?

宇賀神実さん

> >リッチエディターのフィールドにて、BackspaceもしくはDeleteキーの操作が行われると<div />のみが入るようになることを確認しました。

> 再現できないのですが、具体的にどのような操作を行うのかご教授いただけますでしょうか?

レコード編集画面でリッチエディター項目を選択、文字入力可能な状態にしてDeleteキー押下後、レコード保存。

その後に該当レコードをCSV出力すると<div />のみになりました。

 

> 空である判定のほかに問題になるのが、一度「<div />」が入ってしまうとその後にリッチエディターに値をいれても「<div />」取れないので、

> デザインに当て込んだときにデザインが崩れてしまう現象が起きています。

> そのため、取得したレコードの値から「<div />」を削除して評価する必要がありそうです。

別の投稿を参照しますと、下記のように回答されていますね。


リッチエディタの場合は、divに限らず、fontなどすべての装飾タグが入ってしまいます。

標準機能で解決する場合、リッチエディタではなく文字列(複数行)フィールドを使用することで解決するかと思います。

 

リッチエディタは使いつつ、CSV出力時にだけタグを入れたくない場合は、

JavaScriptカスタマイズで、レコード保存時にタグをうまく処理して文字列フィールドに格納し、

CSV出力時にはその文字列フィールドを出力対象とすればよいかと思います。


ご参考までに。

高田さん

ご丁寧に回答いただき、ありがとうございます。

> リッチエディタの場合は、divに限らず、fontなどすべての装飾タグが入ってしまいます。

こちらですね。参考になりました。

 

今回、リッチエディターはお知らせ的な感じでリッチエディターの文字装飾をそのままとし、外部WEBアプリケーションから読み込んで出力させています。

今回はリッチエディターに入力があればお知らせを出すといった使い方を実現させるため、リッチエディターの値だけで未入力の状態を外部WEBアプリケーション側でどのように判断するかを探っていました。

BackspaceもしくはDeleteで「<div />」が入ることを考慮し、空と判断させるタグパターンで突合させるしかなさそうです。

ありがとうございました。