2017-08-29 9 views
0

私はある間隔でデータをクリップボードに自動保存する機能を実装しています(私の場合、4スペース後に保存していました)。間隔を提案することができます。jQueryを使用してテキストエリアのテキストをクリップボードにコピーし続ける

私はthisのテキストエリアのテキストをクリップボードにコピーする回答をしていますが、ここではクリップボードにデータをコピーするために別のボタンを使用しましたが、私はそれを継続的に保存します。

私がこれまで試してみました何

var spaceCount = 0; 
 
$('#description').keyup(function(event) { 
 
    if (event.keyCode == 32) { 
 
    ++spaceCount; 
 
    if (spaceCount % 4 == 3) { 
 
     $(this).select(); 
 
     try { 
 
     var isCopied = document.execCommand('copy'); 
 
     console.log(isCopied); 
 
     console.log("Copied to clipboard"); 
 
     } catch (e) { 
 
     console.log("Error :Copying to clipboard"); 
 
     } 
 
    } 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea id="description" cols="50" rows="4"></textarea>

問題は、テキストが選択されたままです。テキストの選択を解除するにはどうすればよいですか?私は1つの答えで見たように、作成する要素を使用したくありません。

また、プラグインを使用しないで別の解決策を提案できますか?

+1

なぜローカルストレージを使用していませんか?クリップボードは非常に揮発性です。次を参照してください:https://www.w3schools.com/html/html5_webstorage.asp – axlj

+0

@axlj uは任意の変数を使用していますか? –

+0

@shantaram_t https://developer.mozilla.org/docs/Web/API/Window/localStorage – evolutionxbox

答えて

0

document.getSelection().removeAllRanges();を使用して選択範囲をクリアすることができます。また、テキストエリアのテキストの最後にカーソルを戻すjQueryを少し追加しました。

var spaceCount = 0; 
 
$('#description').keyup(function(event) { 
 
    if (event.keyCode == 32) { 
 
    ++spaceCount; 
 
    if (spaceCount % 4 == 3) { 
 
     $(this).select(); 
 
     try { 
 
     var isCopied = document.execCommand('copy'); 
 
     console.log(isCopied); 
 
     console.log("Copied to clipboard"); 
 

 
     // clear the selected range here 
 
     document.getSelection().removeAllRanges(); 
 
     // put the cursor back at the end of the text 
 
     var val = $(this).val(); 
 
     $(this).focus().val("").val(val); 
 

 
     } catch (e) { 
 
     console.log("Error :Copying to clipboard"); 
 
     } 
 
    } 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea id="description" cols="50" rows="4"></textarea>

+0

あなたの解決策が動作しています、@ axljのコメントは 'window.localStorage' –

関連する問題