web-dev-qa-db-ja.com

jQuery / JavaScriptを使用してクリップボードのテキストボックスの値にコピーする

次のようなテキストボックスとボタンがあります。

_     <div class="col-xs-11" style="padding:20px 0 ">
     <input type="text" class="form-control txtKeywords" id="txtKeyw" style="margin-bottom:10px; height:45px;" maxlength="80" placeholder="Click on keywords to combine your title">
   <button type="submit" class="btn btn-space btn-success btn-shade4 btn-lg copyToClipboard">
    <i class="icon icon-left s7-mouse"></i> Copy to Clipboard
     /button>
_

また、ユーザーが[クリップボードにコピー]ボタンをクリックすると、テキストボックスの内容が次のようにクリップボードにコピーされます。

_$(document).on("click", ".copyToClipboard", function () {
    copyToClipboard("txtKeyw");
    successMessage();
});
_

copyToClipboard関数の定義は次のとおりです。

_ function copyToClipboard(element) {
            var $temp = $("<input>");
            $("body").append($temp);
            $temp.val($(element).text()).select();
            document.execCommand("copy");
            $temp.remove();
        }
_

しかし、これを行っても何も起こりません。テキストボックスからクリップボードに値がコピーされません...ここで何が間違っているのでしょうか。

詳細情報:

  • これは、Chrome 5964ビットとFirefox5432ビットの両方で発生します。
  • successMessage()が呼び出され、ブラウザに表示されます。
  • 要素のIDの前に_#_を追加しても、問題は解決しません。
5
User987

copyToClipboard()パラメータとして要素を取得します。 txtKeywはidであり、その前に#を付ける必要があります。

1
mshomali