2010-05-08 2 views
1

JavaScript를 사용하여 내 사이트에서 복사중인 텍스트를 정리하고 싶습니다.복사 된 텍스트의 텍스트 삭제

나는이 같은 조각을 사용

body { 
    vertical-align: middle; ➊ 
} 

를 ➊ 나중에 주석을 나타내는 경우. 독자가이 스 니펫을 복사하여 사용하기를 바랍니다. 그래서 유니 코드 마커를 삭제해야합니다. 복사중인 텍스트에 액세스하고 텍스트를 변경하려면 어떻게합니까?

사용자가 (mousedown)을 클릭하면 스 니펫에서 마커를 삭제하는 것으로 간주되어 텍스트를 선택하고 복사 한 다음 마커를 복원 할 수 있지만 실제로는 그렇게 할 길이 멀어 보입니다.

답변

2

그냥 다음 수, 스팬 태그 유니 코드 마커를 놓고, 그들에 표시 아무것도 넣지 .marker 요소에 다음과 같은 스타일을 적용

​.marker 
{ 
    position:absolute; 
    right:0; 
}​ 
+0

IMHO 가장 솔라 수있는 방법이 솔기! +1 –

+0

성공적으로 테스트 해 보셨습니까? 나는 그것을 작동시킬 수 없다. (나는 자바 스크립트에 능숙하므로 코드가 실행되지만 여전히 마커를 복사한다.) – riddle

+0

http://www.jsfiddle.net/92En5/ 확실히 chrome에서 작동한다. 어쩌면 다른 사람에 있지 않을 수도 있습니다. – Eric

0

단지 의견에 표식을 설정 했습니까? 복사 후에 사용하면 해를 끼치 지 않습니다.

+0

엄지 손가락으로 아이디어를 얻었지만, 내가 찾고있는 것이 아닙니다. – riddle

1

일반 텍스트를 복사 할 때 이미지가 무시되므로 유니 코드 마커를 이미지로 변환 할 수 있습니다. 사용자가

body { 
    vertical-align: middle; <span class="marker">➊</span> 
} 

를 클릭 그리고 보너스로 jQuery를

$('.code') 
    .mousedown(function() { 
     $(this).find('.marker').css('display','none'); 
    }) 
    .mouseleave(function() { 
     $(this).find('.marker').css('display','inline'); 
    }); 

에서이 작업을 수행 할 때

+0

실제로 시도할만한 것이 있습니다. 감사! – riddle

0

는있다처리기가 있지만 널리 지원되는지는 의심 스럽습니다. 또한 onselectstart과 같은 선택 이벤트 핸들러 (다른 브라우저마다 다름)와 텍스트의 일부를 선택 취소 할 수있는 다양한 속성 (예 : 브라우저 간이 아닌)도 -moz-user-select: none과 같이 있습니다. 절대적으로 위치 된 마커를 사용하거나 마커를 Z- 인덱스를 통해 액세스 할 수 없게 만드는 것이 좋습니다.

+0

User-select : none은 Mozilla 및 WebKit에서 작동하며 예, 마커를 선택하지 않습니다. 그러나 그들은 어쨌든 복사됩니다. : / – riddle

관련 문제