JavaScript를 사용하여 Firefox, Safari 및 Chrome에서 클립 보드를 읽을 수 있습니까?

StackOverflow https://stackoverflow.com/questions/233719

문제

JavaScript를 사용하여 클립 보드의 내용을 읽으려고합니다. Internet Explorer를 사용하면 기능을 사용하는 것이 가능합니다

window.clipboardData.getData("Text")

Firefox, Safari 및 Chrome에서 클립 보드를 읽는 비슷한 방법이 있습니까?

도움이 되었습니까?

해결책

Safari는 클립 보드를 읽는 동안 지원합니다 onpaste 이벤트 :

정보

당신은 다음과 같은 일을하고 싶습니다.

someDomNode.onpaste = function(e) {
    var paste = e.clipboardData && e.clipboardData.getData ?
        e.clipboardData.getData('text/plain') :                // Standard
        window.clipboardData && window.clipboardData.getData ?
        window.clipboardData.getData('Text') :                 // MS
        false;
    if(paste) {
        // ...
    }
};

다른 팁

온라인 스프레드 시트 훅 CTRL+C, Ctrl+V 이벤트 및 숨겨진 Textarea 컨트롤로 초점을 전송하고 이벤트가 페이스트 용으로 완료된 후에는 사본 또는 읽기 내용물로 원하는 새로운 클립 보드 내용으로 설정을 설정합니다.

아니. 그리고 해킹 (예 : 기존 플래시)을 찾으면 그것에 의존하지 않습니다.

클립 보드에서 왜 읽고 싶은지 물어봐도 될까요? 사용자가 클립 보드 내용을 따라 전달하려면 붙여 넣기 만하면됩니다.

사람들은 숨겨진 플래시 요소를 사용하여 언급 한 브라우저의 클립 보드 데이터를 읽습니다.

@agsamek 제안을 사용하여 약간의 테스트를 만들어 내고 작동하게했습니다. 제 경우에는 붙여 넣은 입력에 대한 신선한 Pageload를 기다려야하므로 뷰 외 텍스트에 중점을두고 거기에서 텍스트를 읽습니다.

이를 확장하여 특정 키 (붙여 넣기 조합)를 듣고 숨겨진 필드에 집중할 수 있습니다. 마지막으로 집중된 요소에 다시 초점을 맞추고 콘텐츠를 붙여 넣어야한다고 생각하기 때문에 더 많은 작업이 수행 될 것입니다.

내 유스 케이스에게는 이것이 최신 크롬과 파이어 폭스에서 작동하기에 충분했습니다. 제안을 환영합니다.

https://jsfiddle.net/wuestkamp/91dxjv7s/11/

$(function () {

    $('body').prepend('<input type="text" id="hidden_textbox" style="position: absolute; width:0px; height: 0px; top: -100px; left: -100px">');

    var $hiddenTextbox = $('#hidden_textbox');
    $hiddenTextbox.focus();

    $(document).on('paste', function () {
        setTimeout(function () {
            var val = $hiddenTextbox.val();

            console.log('pasted: ' + val);

        }, 50);

    });

});
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top