2010-01-14 4 views
4

나는 온라인으로 Times를 읽고 있었는데 기사에서 약간의 텍스트를 복사하고 친구에게 IM로 보내고 싶었지만 그렇게했을 때 내가 복사 한 내용의 기사에 자동으로 링크가 추가되었다. .자바 스크립트 : 하이재 복사?

이것은 IM 클라이언트의 기능이 아니기 때문에, Times 웹 사이트의 일부 자바 스크립트 때문에 발생했다고 생각됩니다.

사이트에서 구현하고 싶다면 어떻게해야합니까? 기본적으로 복사 작업을 납치하고 기사의 URL을 복사 된 콘텐츠의 끝에 추가해야합니다. 생각?

여기에 내가 읽고 있던 기사 참조를 들어, : http://www.time.com/time/health/article/0,8599,1914857,00.html

+0

지금이 점에 대해 흥미로운 점이 있습니다.Slashdot이 방금 Tynt의 "서비스"에 관한 이야기를 올렸습니다. http://yro.slashdot.org/story/10/01/14/1818222/Tynt-Insight-Is-Watching-You-Cut-and-Paste – JasCav

답변

5

그것은 (당신의 참조 사이트가 사용하는) jQuery로 바람입니다입니다 :

$("body").bind('copy', function(e) { 
    // The user is copying something 
}); 

당신은 jQuery를 검색 & 공유 플러그인을 사용할 수 있습니다 어떤 이 정확히 누군가가 귀하의 사이트에서 40 문자 이상을 복사 할 때마다 : http://www.latentmotion.com/search-and-share/

귀하가 참조한 사이트가 분명히 이것을 달성하기 위해 Tynt Insight이라는 서비스를 사용하고 있습니다.

+0

jQuery 복사 이벤트로 컨텐츠를 변경할 수 있습니까? – Matchu

+0

Matchu, 이벤트가 없습니다. 단지 콘텐츠를 언제 변경해야하는지 알려주는 것입니다. 이 모든 작업을 수행하는 jQuery 플러그인이 있는데, 필자의 대답으로 참조하겠다. – Sampson

+1

Tynt는 최근 모든 분노입니다 (단어의 모든 감각에서). –

0

당신은 어떤 브라우저를 사용하여 (어떤 버전)입니까?

일부 최신 브라우저에서는 웹 사이트에서 클립 보드에 액세스 할 수 있는지 또는 허용되지 않는지 묻는 메시지가 나타납니다. 다른 브라우저 (예 : IE 6)에서는 허용되며 웹 사이트에서 쉽게 복사 클립 보드를 읽고 쓸 수 있습니다. 여기

코드 (IE 전용)

clipboardData.setData("Text", "I just put this in the clipboard using JavaScript"); 
+0

Safari 4 doesn 허가를 요청하지 마라. 적절한 경우 클립 보드 액세스를 복사 및 붙여 넣기로 제한합니다. – eyelidlessness

+0

나는 FF로 시험해 보았고 마지막에 웹 사이트를 추가했다. –

+0

Safari 4를 사용하고 있었는데 질문을받지 않았습니다. 사용자가 선택한 데이터에 어떻게 데이터를 추가 할 수 있습니까? 당신은 데이터를 명시 적으로 설정합니다 ... 감사합니다! – neezer

1

무료 서비스 Tynt을 사용 중입니다. 똑같은 것을 원한다면 같은 서비스를 사용하십시오.

0

"복사 & 붙여 넣기 하이 잭 범인"jQuery 플러그인 당신이 원하는 Tynt 이상의 용도에 더 적합한 것 또는 & 공유 검색을 정확하게 수행합니다 http://plugins.jquery.com/project/copypaste

당신은 쉽게 복사 된 내용의 형식을 최대 또는 최소 문자를 지정할 수 있습니다 , 그리고 당신이 원하는 곳에 복사 된 내용에 페이지의 제목이나 URL을 쉽게 포함시킬 수 있습니다.

0

최근 다른 웹 사이트에서이 사실을 확인하고 작동 방식을 blog post으로 기록했습니다. jQuery 예제는 사용자가 복사 및 붙여 넣기를 실제로 수정하지 않는 것처럼 새로운 컨텍스트 메뉴를 추가하기 만합니다. 한마디로

: 마지막 부분을 즉시 실행하면 작동하지 않는 말

var content = document.getElementById("content"); 
content.addEventListener("copy", oncopy); 

function oncopy() { 
    var newEl = document.createElement("p"); 
    document.body.appendChild(newEl); 
    newEl.innerHTML = "In your copy, messing with your text!"; 
    var selection = document.getSelection(); 
    var range = selection.getRangeAt(0); 
    selection.selectAllChildren(newEl); 
    setTimeout(function() { 
    newEl.parentNode.removeChild(newEl); 
    selection.removeAllRanges(); 
    selection.addRange(range); 
    }, 0) 
} 

setTimeout이 중요하다.

이 예제 은 마지막으로 선택한 텍스트를의 선택한 텍스트로 바꿉니다. 기존 선택을 잡고 원하는대로 추가 할 수도 있습니다.