スクリプトを使用してクリップボードのコンテンツを検出し、ページを開いたときにユーザーの入力なしでテキストフィールドに貼り付ける方法を教えてください。どうすればできますか?
スクリプトを使用してクリップボードのコンテンツを検出し、ページを開いたときにユーザーの入力なしでテキストフィールドに貼り付ける方法を教えてください。どうすればできますか?
回答:
window.clipboardData.getData('Text')
一部のブラウザで動作します。ただし、それが機能する多くのブラウザは、Webページにクリップボードへのアクセスを許可するかどうかをユーザーに尋ねます。
使用する新しいクリップボードAPIを経由して、navigator.clipboard
。次のように使用できます。
navigator.clipboard.readText()
.then(text => {
console.log('Pasted content: ', text);
})
.catch(err => {
console.error('Failed to read clipboard contents: ', err);
});
または非同期構文で:
const text = await navigator.clipboard.readText();
これにより、ユーザーにアクセス許可要求ダイアログボックスが表示されるので、おかしなビジネスは不可能です。
(注:これはコンソールから呼び出された場合は機能しませんが、@ Arturのおかげでボタンを押すなどの直接的なユーザーアクションが必要になります)
setTimeout
からページをクリックします。
使用できます
window.clipboardData.getData('Text')
IEでユーザーのクリップボードのコンテンツを取得します。ただし、他のブラウザでは、クリップボードにアクセスするための標準インターフェイスがないため、コンテンツを取得するためにフラッシュを使用する必要がある場合があります。あなたはこのプラグインゼロクリップボードを試すことができるかもしれません
以下は、選択したコンテンツとクリップボードの更新を提供します。
要素IDをコピーイベントにバインドし、選択したテキストを取得します。テキストを置換または変更できます。クリップボードを取得し、新しいテキストを設定します。正確なフォーマットを取得するには、タイプを「text / hmtl」に設定する必要があります。要素の代わりにドキュメントにバインドすることもできます。
$(ElementId).bind('copy', function(event) {
var selectedText = window.getSelection().toString();
selectedText = selectedText.replace(/\u200B/g, "");
clipboardData = event.clipboardData || window.clipboardData || event.originalEvent.clipboardData;
clipboardData.setData('text/html', selectedText);
event.preventDefault();
});