Programing

현재 클립 보드 콘텐츠를 받으시겠습니까?

crosscheck 2020. 10. 17. 09:11
반응형

현재 클립 보드 콘텐츠를 받으시겠습니까?


내 스크립트가 클립 보드의 내용을 감지하고 사용자의 입력없이 페이지가 열릴 때 텍스트 필드에 붙여 넣는 방법을 알고 싶습니다. 어떻게 할 수 있습니까?


window.clipboardData.getData('Text')일부 브라우저에서 작동합니다. 그러나 작동하는 많은 브라우저는 웹 페이지에서 클립 보드에 액세스 할 수 있는지 여부를 사용자에게 묻습니다.


이 글을 읽은시기에 따라 새 클립 보드 APInavigator.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

반응형