2020 업데이트
모든 최신 브라우저 에서 작동하는 솔루션입니다 .
document.addEventListener('copy', (event) => {
const pagelink = `\n\nRead more at: ${document.location.href}`;
event.clipboardData.setData('text', document.getSelection() + pagelink);
event.preventDefault();
});
Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br/>
<textarea name="textarea" rows="7" cols="50" placeholder="paste your copied text here"></textarea>
[이전 게시물-2020 년 업데이트 이전]
복사 된 웹 텍스트에 추가 정보를 추가하는 두 가지 주요 방법이 있습니다.
1. 선택 조작
아이디어는를 감시 copy event
한 다음 추가 정보와 함께 숨겨진 컨테이너를에 추가 dom
하고 선택을 확장하는 것입니다.
이 방법은 c.bavota 에 의해이 기사 에서 채택 되었습니다 . 더 복잡한 경우 는 jitbit 의 버전 도 확인하십시오 .
- 브라우저 호환성 : 모든 주요 브라우저, IE> 8.
- 데모 : jsFiddle 데모 .
- 자바 스크립트 코드 :
function addLink() {
//Get the selected text and append the extra info
var selection = window.getSelection(),
pagelink = '<br /><br /> Read more at: ' + document.location.href,
copytext = selection + pagelink,
newdiv = document.createElement('div');
//hide the newly created container
newdiv.style.position = 'absolute';
newdiv.style.left = '-99999px';
//insert the container, fill it with the extended text, and define the new selection
document.body.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout(function () {
document.body.removeChild(newdiv);
}, 100);
}
document.addEventListener('copy', addLink);
2. 클립 보드 조작
아이디어는 copy event
클립 보드 데이터 를보고 직접 수정하는 것입니다. 이것은 clipboardData
속성을 사용하여 가능 합니다. 이 속성은의 모든 주요 브라우저에서 사용할 수 있습니다 read-only
. 이 setData
방법은 IE에서만 사용할 수 있습니다.
function addLink(event) {
event.preventDefault();
var pagelink = '\n\n Read more at: ' + document.location.href,
copytext = window.getSelection() + pagelink;
if (window.clipboardData) {
window.clipboardData.setData('Text', copytext);
}
}
document.addEventListener('copy', addLink);