EunsooD

브라우저에서 js를 이용해서 클립보드로 데이터 넣는 방법 본문

카테고리 없음

브라우저에서 js를 이용해서 클립보드로 데이터 넣는 방법

EunsooD 2017. 1. 31. 14:28
반응형


구글링 검색결과입니다.

원본 : http://stackoverflow.com/questions/22581345/click-button-copy-to-clipboard-using-jquery



왠만한 브러우저에서 동작하는 것을 확인했습니다~







function CopyTest() {

copyToClipboard(document.getElementById("resultData"));

}


function copyToClipboard(elem) {


// create hidden text element, if it doesn't already exist

    var targetId = "_hiddenCopyText_";

    var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";

    var origSelectionStart, origSelectionEnd;

    if (isInput) {

        // can just use the original source element for the selection and copy

        target = elem;

        origSelectionStart = elem.selectionStart;

        origSelectionEnd = elem.selectionEnd;

    } else {

        // must use a temporary form element for the selection and copy

        target = document.getElementById(targetId);

        if (!target) {

            var target = document.createElement("textarea");

            target.style.position = "absolute";

            target.style.left = "-9999px";

            target.style.top = "0";

            target.id = targetId;

            document.body.appendChild(target);

        }

        target.textContent = elem.textContent;

    }

    // select the content

    var currentFocus = document.activeElement;

    target.focus();

    target.setSelectionRange(0, target.value.length);

    

    // copy the selection

    var succeed;

    try {

     succeed = document.execCommand("copy");

    } catch(e) {

        succeed = false;

    }

    // restore original focus

    if (currentFocus && typeof currentFocus.focus === "function") {

        currentFocus.focus();

    }

    

    if (isInput) {

        // restore prior selection

        elem.setSelectionRange(origSelectionStart, origSelectionEnd);

    } else {

        // clear temporary content

        target.textContent = "";

    }

    return succeed;

}

반응형
Comments