현재 클립 보드 콘텐츠를 받으시겠습니까?
내 스크립트가 클립 보드의 내용을 감지하고 사용자의 입력없이 페이지가 열릴 때 텍스트 필드에 붙여 넣는 방법을 알고 싶습니다. 어떻게 할 수 있습니까?
window.clipboardData.getData('Text')
일부 브라우저에서 작동합니다. 그러나 작동하는 많은 브라우저는 웹 페이지에서 클립 보드에 액세스 할 수 있는지 여부를 사용자에게 묻습니다.
이 글을 읽은시기에 따라 새 클립 보드 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에게 감사드립니다)
당신이 사용할 수있는
window.clipboardData.getData('Text')
IE에서 사용자의 클립 보드 내용을 가져옵니다. 그러나 다른 브라우저에서는 클립 보드에 액세스하기위한 표준 인터페이스가 없기 때문에 콘텐츠를 가져 오기 위해 플래시를 사용해야 할 수도 있습니다. 이 플러그인 Zero Clipboard를 사용해 볼 수 있습니다.
다음은 선택한 콘텐츠를 제공하고 클립 보드를 업데이트합니다.
복사 이벤트로 요소 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();
});
참고 URL : https://stackoverflow.com/questions/6413036/get-current-clipboard-content
'Programing' 카테고리의 다른 글
지연 불가 대 초기 즉시 지연 가능 (0) | 2020.10.17 |
---|---|
MATLAB에서 동일한 파일에 스크립트와 함수 정의가있을 수 있습니까? (0) | 2020.10.17 |
MySQL에서 삼항 조건 연산자를 구현하는 방법 (0) | 2020.10.16 |
Pandas 데이터 프레임에서 NaN으로 행의 정수 인덱스 찾기 (0) | 2020.10.16 |
gnuplot 내부의 루프 구조? (0) | 2020.10.16 |