# 特定フィールドのコピーと貼り付け

**URL:** <https://community.cybozu.dev/t/topic/7554>\
**Category:** kintone 開発相談\
**Created:** [2021 年 6 月 4 日午前 8:04 UTC](https://community.cybozu.dev/t/topic/7554 "2021-06-04T08:04:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2542](https://avatars.discourse-cdn.com/v4/letter/l/67e7ee/32.png) [@Legacy\_Account2542](https://community.cybozu.dev/u/Legacy_Account2542)\
**Post date:** [2021 年 6 月 4 日午前 8:04 UTC](https://community.cybozu.dev/t/topic/7554/1 "2021-06-04T08:04:03Z")

</div>

お世話になっております。

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);
        });
  })();

```

&nbsp;

宜しくお願いいたします。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2613](https://avatars.discourse-cdn.com/v4/letter/l/41988e/32.png) [@Legacy\_Account2613](https://community.cybozu.dev/u/Legacy_Account2613)\
**Post date:** [2021 年 6 月 4 日午後 9:27 UTC](https://community.cybozu.dev/t/topic/7554/2 "2021-06-04T21:27:52Z")

</div>

> `copy`現在の **選択範囲** をクリップボードにコピーします。この動作が有効になる条件は、ブラウザーによって様々であり、時の経過により発展する可能性があります。このコマンドが使用可能かどうかは、ブラウザーの互換性のセクションで確認してください。

テクストが選択されていないといけないのようですね。

[https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select)

そして動作は出来るかもしれませんが、Document.execCommand() という機能はもう廃止されたそうです。[https://developer.mozilla.org/ja/docs/Web/API/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](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API)

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2542](https://avatars.discourse-cdn.com/v4/letter/l/67e7ee/32.png) [@Legacy\_Account2542](https://community.cybozu.dev/u/Legacy_Account2542)\
**Post date:** [2021 年 6 月 6 日午前 6:23 UTC](https://community.cybozu.dev/t/topic/7554/3 "2021-06-06T06:23:03Z")

</div>

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);

});
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2613](https://avatars.discourse-cdn.com/v4/letter/l/41988e/32.png) [@Legacy\_Account2613](https://community.cybozu.dev/u/Legacy_Account2613)\
**Post date:** [2021 年 6 月 6 日午前 6:42 UTC](https://community.cybozu.dev/t/topic/7554/4 "2021-06-06T06:42:17Z")

</div>

t.sato様

よかったです。私も勉強になりました。

便利な機能のようで、アイデアを頂き、今回のカスタマイズに実装しようと思います。

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