超簡単!テキストをクリップボードへコピー

スポンサーリンク


超簡単!テキストをクリップボードへコピー

JavascriptとHtmlだけで超お手軽!テキストのクリップボードへのコピー
Javascript実質3行
しかも、Javascriptのライブラリ類は使いません。

クリップボードへのコピー手順

やってることは、通常人が操作してるコピーと同じことをJavascriptで実行するだけ。
どういうことかと言うと
1.コピーするテキストを特定する
2.特定したテキストを選択(ハイライト)します。
3.クリップボードへコピーの実行。
だだこれだけです。

では、順を追って説明していきます。
が、その前にターゲットとなるテキストを準備しておきます。

コピー対象となるテキストを準備

これは単純にhtmlのテキストエリア(テキストボックスでもOK)

<textarea rows="5" readonly>今日は良い天気です。</textarea>

ですが、Javascriptにどのテキストなのか識別させ易いように「id」を付けときます。

<textarea id="texta" rows="5" readonly>今日は良い天気です。</textarea>

これで「texta」で識別させることが出来るようになりました。
また、PHPからテキストを代入したいのなら

<?php
$sample1 = "今日は良い天気です。";
?>

<textarea id="texta" rows="5" readonly><?=$sample1?></textarea>

こんな感じでいかがでしょう

1.コピーするテキストを特定

「targetdoc」(ターゲットドキュメント←適当です)
と言う変数を作り
これにテキストを特定させます。

var targetdoc = document.getElementById("id名");

コード的にはこうなるのでしょうか
id名を、「texta」に置き換えればOKです。

ここで、汎用性を持たせるために[id名」は変数「id」にしておきましょう

2.特定したテキストを選択(ハイライト化)

「targetdoc」が目的のテキストなので、これをセレクトメソッドで選択します。

      targetdoc.select();

これで良いと思います。

3.クリップボードへコピーの実行

選択(ハイライト化)したものをクリップボードへコピーするコマンドがあるのでそれを使います。

      document.execCommand("copy");

便利ですね。

関数に仕上げる

関数名は「Copt2Clipboard」とでもして
1~3を組み合わせると

// クリップボードへコピー関数
//
function Copy2Clipboard(id){
      var targetdoc = document.getElementById(id);
      targetdoc.select();
      document.execCommand("copy");
}

こうなりました。

テキストのクリップボードへのコピー

サンプルとしてのコードは以下になりました。

<?php
$sample1 = "今日は良い天気です";
?>

<textarea id="texta" rows="5" readonly><?=$sample1?></textarea>
<br>
<input type="button" value="コピー" onClick="Copy2Clipboard('texta')">
<br>



<script type="text/javascript">
<!--
// クリップボードへコピー関数
//
function Copy2Clipboard(id){
      var targetdoc = document.getElementById(id);
      targetdoc.select();
      document.execCommand("copy");
}
-->
</script>


そして、コピー対象が、テキストボックスの場合は。
htmlの部分のみ変わって

<?php
$sample2 = "明日は雨です";
?>

<input id="textb" type="text" value="<?=$sample2?>" readonly>
<br>
<input type="button" value="コピー" onClick="Copy2Clipboard('textb')">