お世話になっております。
1点困っていることがあり、わかる方がいましたら教えていただけますでしょうか。
<概要>
・レコード詳細画面内に、対象フィールドのコピーボタンを設けたが、
ボタンを押した際、ブラウザ上のデバックモードでは、対象フィールドの中身はコピーできてそうだが、
メモ帳でなどで、右クリック⇒貼り付けの動作を行ったときにフィールドの内容が貼り付けできない。
<メモ>
・レコード詳細画面の空スペース名:my_copy_field1
・コピー元フィールド名:住所
(function() {
"use strict";
var events = ['app.record.detail.show']; //レコード詳細画面のみ表示
kintone.events.on(events, function(event) {
var myCopyFieldButton1 = document.createElement('button');
myCopyFieldButton1.id = 'my_copy_field1';
myCopyFieldButton1.innerText = '住所キリトリ';
myCopyFieldButton1.onclick = function () {
var text1 = kintone.app.record.get();
var cp1 = text1.record.住所.value ;
console.log(cp1); //※フィールド内のコピーがされていることをログから確認
document.execCommand("copy");
alert('コピーしました');
}
kintone.app.record.getSpaceElement('my_copy_field1').appendChild(myCopyFieldButton1);
});
})();
宜しくお願いいたします。
copy
現在の 選択範囲 をクリップボードにコピーします。この動作が有効になる条件は、ブラウザーによって様々であり、時の経過により発展する可能性があります。このコマンドが使用可能かどうかは、ブラウザーの互換性のセクションで確認してください。
テクストが選択されていないといけないのようですね。
https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select
そして動作は出来るかもしれませんが、Document.execCommand() という機能はもう廃止されたそうです。https://developer.mozilla.org/ja/docs/Web/API/Document/execCommand
代わりにClipboard APIがあるそうです。https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API
Lorenz Ras様
いつもありがとうございます。
まさか、Document.execCommand() が廃止されていたとは・・・。。
いただた情報を元に、ボタンでのコピー、貼り付けができるようになりました。
(function() {
"use strict";
//var events = ['app.record.create.show','app.record.edit.show',];
var events = ['app.record.detail.show']; //レコード詳細画面のみ表示
kintone.events.on(events, function(event) {
// 1 任意のスペースフィールドにボタンを設置
var myCopyFieldButton1 = document.createElement('button');
myCopyFieldButton1.id = 'my_copy_field1';//スペースフィールド
myCopyFieldButton1.innerText = '住所キリトリ';//ボタン名
myCopyFieldButton1.onclick = function () {//クリックした際の動き
var text1 = kintone.app.record.get();
navigator.clipboard.writeText(text1.record.住所.value);
alert('コピーしました');
}
kintone.app.record.getSpaceElement('my_copy_field1').appendChild(myCopyFieldButton1);
});
})();
t.sato様
よかったです。私も勉強になりました。
便利な機能のようで、アイデアを頂き、今回のカスタマイズに実装しようと思います。
ありがとうございました。