html
1<button onclick="copyString()"> 2コピー 3</button>
JS
1copyString = function () { 2let tempInput = document.createElement("textarea"); 3 tempInput.style.position = "absolute"; 4 tempInput.style.left = "-1999px"; 5 tempInput.style.right = "-1999px"; 6 tempInput.value = 'コピーしたい文章\nです\n'; 7 tempInput.setAttribute('xcontentEditable', true); 8 tempInput.setAttribute('readOnly', false); 9 document.body.appendChild(tempInput); 10 11 window.getSelection().removeAllRanges(); 12 13 let useragent = window.navigator.userAgent.toLowerCase(); 14 if(useragent.indexOf('iphone os 12')) { 15 let range = document.createRange(); 16 range.selectNode(document.querySelector('textarea')); 17 let selection = window.getSelection(); 18 selection.addRange(range); 19 } else { 20 tempInput.setSelectionRange(0, 9999); 21 tempInput.select(); 22 } 23 24 document.execCommand("copy"); 25 document.body.removeChild(tempInput); 26}
上記のjsでwebサイト上でボタンクリックでクリップボードに文字をコピーする機能を作成したのですが
android chromeだとどうもコピーが上手く動作していないようです。
ブラウザ内だとペースト出来るのですが メモ帳など他のアプリにペースト出来ません。
今までテストした環境例が以下です:
chrome 80.0.3987.132 Android 6.0.1 chrome 81.0.4044.138 Android 9
.setSelectionRange(0, 9999) と .select() を両方書いているのは文章のselect でコピーが失敗していると思っていたので書いてみましたがどうも原因は別のようです。
解決策をご存知の方がいればご教示いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。