작업 일지
작업일지 복사할 때 출처 추가하기
관리자   2020.03.04 13:07:46
복사할 때 출처 추가하기
 
누군가가 생성한 자료는 그 사람에게 소중한 자료이다. 좋은 자료라고 생각해서 복사해 가는 사람은 언제나 이 사실을 명심해야 할 것 같다.
 
소중한 자료이다 보니 어떤 곳에서는 복사는 물론 드래그 조차 막아 놓은 곳들이 있다. 그러나 좋은 자료가 널리 퍼져서 많은 사람들에게 이로움을 줄 수 있다면 그 또한 좋은 일일 것이다. 
 
물론 사람마다 생각은 다 다를 수 있다. 이것은 어디까지나 저의 개인적인 의견일 뿐이다.
 
다음은 웹(Web) 페이지에서 복사를 할 때, 복사의 내용에 추가적으로 현재 페이지의 주소(Url)를 추가해 주는 예제이다. 자바스크립트(Javascript)로 작성된 것이다. (구글링을 통해 작성했다. 구글과 stackoverflow에 고마움을 표한다. 물론 작성자도 포함이다.)
 
모든 브라우저, 모든 버전에서 작동하면 좋겠지만 브라우저별, 버전별로 작동 방식이 차이가 많다. 작업하는 컴퓨터에 설치되어 있는 4개의 브라우저(IE, 파이어폭스, 크롬, 사파리)에서는 잘 작동한다. 그러나 모든 브라우저, 모든 버전에서 잘 작동하리라고 보장하기는 어렵다.
 
자바스크립트 : 

// 복사 할 때 출처 추가하기
function run_copy()
{
    var text = window.getSelection().toString();
    var retUrl = document.URL;
    text = text +'\n\n출처: [하나성경] '+retUrl;
    
    copyToClipboard(text);
}

function copyToClipboard(text) {
    var textarea = document.createElement("textarea");
    var result = "";
    textarea.textContent = text;
    textarea.style.position = "fixed";
    document.body.appendChild(textarea);
    textarea.select();
    
    try {
        result = document.execCommand("cut");            
    } catch (ex) {
        console.warn("Copy to clipboard failed.", ex);
        return false;
    } finally {
        document.body.removeChild(textarea);
    }
    
    if (false == result) {
        var textarea = document.createElement("textarea");
        textarea.textContent = text;
        textarea.style.position = "fixed";
        document.body.appendChild(textarea);
        textarea.select();
        
        unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        const clipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
        clipboardHelper.copyString(text);
    }
}

 

HTML :


<body oncopy="run_copy();">

 
 - 작성자 A -
 
목록
목록 보기 / 숨기기