リッチエディターフィールドへのリンク挿入について

js初心者です。

ご存知の方おりましたら教えていただけますでしょうか。

 

リッチエディターフィールドへのリンクの挿入をしたいのですが、イベントの種類によってうまく動きません。これは仕様でしょうか。

 

動く:追加イベント、フィールド変更イベント

動かない:保存前イベント、保存後イベント

 

どなたか教えてくださいませ。

よろしくお願いいたします。

保存前イベントで文字列挿入とかは反映できるはずです。

逆にフィールドの値を変更イベント等ではうごかないはずです。
https://cybozu.dev/ja/kintone/docs/js-api/events/edit/edit-change-event/
ここに対象のフィールドがあります

説明が足りなくてごめんなさい。

フィールド変更イベントで利用するのは、文字列フィールドになります。

 

文字列フィールドの内容を変更 ⇒ その内容をもとにリッチエディターフィールドへ挿入

といった流れです。

実際に挿入するのは下記になります。

event.record.リッチテキスト.value = ‘<div><a href=’ + link  + ‘>開く</a></div>’;

 

linkはURLになります。

やはり、保存前イベント・保存後イベントでは動かないです。

フィールド変更イベントでは問題なく動くので、コードは問題ないと思うのですが。。

 

差し支えなければコードを共有したほうが解決がはやいかもしれませんね。

コードは下記になります。

よろしくお願いいたします。

 

kintone.events.on([‘app.record.create.change.タイトル’,‘app.record.edit.change.タイトル’], (event) => {

// リンクを作成
const title = event.record.タイトル.value;
const link1 = ‘https://ドメイン.cybozu.com/k/アプリID/?view=一覧ID&q=f6464019%20%3D%20"’;
const link2 = ‘"’;
const link = link1 + title + link2;

// リッチテキスト(リンク)に挿入
event.record.リンク.value = ‘<div><a href=’ + link  + ‘>該当のレコードを開く</a></div>’;

  return event;
});

> やはり、保存前イベント・保存後イベントでは動かないです。

この動かないコードの方がないときびしいかもです

動かないコードはイベントを変えただけです。。

よろしくお願いいたします。

そこの記載等間違ってる可能性もすてきれませんので、こちらに記載いただけますと!記載いただけたら見ます!

下記になります。

追記:動かないという言い方は正しくありませんでした。

正確に言うと、「リンクの状態で文字列の挿入はされるが、中身のURLがない」でした。

よろしくお願いします。

 

kintone.events.on([‘app.record.create.submit’,‘app.record.edit.submit’], (event) => {

// リンクを作成
const title = event.record.タイトル.value;
const link1 = ‘https://ドメイン.cybozu.com/k/アプリID/?view=一覧ID&q=f6464019%20%3D%20"’;
const link2 = ‘"’;
const link = link1 + title + link2;

// リッチテキスト(リンク)に挿入
event.record.リンク.value = ‘<div><a href=’ + link  + ‘>該当のレコードを開く</a></div>’;

  return event;
});

<a href=’ + link  + '>

ここのhrefをダブルクォートで囲んでないんで正しくないのが原因かもです。
チェンジイベントではそこはたまたまうまく解釈してもらってるだけみたいですね。

実はテンプレートリテラルというのがあり、それを使えばしゅっとかけます。

``←バッククォートで囲い、変数は、${}で使えます。

 

kintone.events.on(['app.record.create.submit','app.record.edit.submit'], (event) => {

// リンクを作成
const title = event.record.タイトル.value;
const link = `https://ドメイン.cybozu.com/k/アプリID/?view=一覧ID&q=f6464019%20%3D%20`;

// リッチテキスト(リンク)に挿入
event.record.リンク.value = `<div><a href="${link}">該当のレコードを開く</a></div>`;

  return event;
});

ありがとうございます!

テンプレートリテラルというのは知らなかったので、

調べて試してみようと思います!

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。