2012-06-26 3 views
0

제외 웹 응용 프로그램에서 jquery를 사용하여 대화 상자를 시작하고 싶습니다. 대화 상자는 사용자가 클립 보드에 복사 할 문자열을 제공합니다 (Ctrl-C). 일을 단순하게하기 위해 텍스트 영역의 값으로 지정된 문자열을 선택 (강조 표시)하고 싶습니다. 또한 클릭 처리기를 콘텐츠 선택에 바인딩하여 사용자가 클릭 할 때 콘텐츠의 선택을 취소하지 않도록합니다.jquery _nearly_를 사용하여 html 텍스트 영역의 내용 선택,

그러나 Firefox (FF 13.0.1/Linux)를 사용할 경우에는 작동하지 않습니다. 대화 상자가 실행되면 텍스트 영역은 내용을 승인합니다. 바인딩이 잘 작동합니다. 명백한 클릭을 제외하고 단순히 콘텐츠 선택만으로는 작동하지 않습니다.

HTML :

<div> 
    <fieldset> 
     <textarea id="payload"></textarea> 
    </fieldset> 
</div> 

JS/JQuery와 :

$('#payload').val("some text"); 
$('#payload').select(); 
$('#payload').click(function(){this.select();}); 

나는 매우였습니다이 코드를 포함 http://jsfiddle.net/4CK7Y/2/

:

그래서 나는 간단한 사용 사례를 만들어 이 기능이 대부분의 브라우저에서 잘 작동하는 것을보고 놀랐습니다. K onqueror, Rekonq, 오페라. 그러나 파이어 폭스에서는 새로운 리로드가있을 때만 작동합니다. "실행"을 클릭하면 문제가 표시됩니다. 코드가 다시 실행 되더라도 텍스트 영역의 내용은 클릭하지 않고 선택되지 않습니다.

이 원인은 무엇입니까? 그것에 대해 무엇을 할 수 있습니까?

+1

미래 세대가 배우기 위해 질문을 보존 할 수 있도록 질문에 코드를 포함시킬 수 있습니까? (시간이 지남에 따라 링크가 사라짐) – Jake1164

+0

@ Jake1164 : 완료. – arkascha

답변

0

페이지 영역에 텍스트 상자에 포커스이 자동으로 표시되지 않기 때문에. focus() 이벤트를 텍스트 공간에 $ (document) .ready() 아래에 첨부하십시오.

+0

select()는 텍스트 영역에 초점을 두지 않습니까? – arkascha

+0

select()는 다른 용도로 사용됩니다. ** focus() **는 초점을 맞추는 데 사용됩니다. – SexyBeast

+0

좋아, 텍스트 영역에 초점을 설정하려고했지만 원하는 효과를 얻을 수 없습니다. $ (document) .ready() 함수에서 포커스를 설정하면 나를 위해 작동하지 않습니다. 또한 : "실행"단추가 스크립트를 다시 실행해야합니다. 그래서 거기에 포커스()를 추가하면 효과가 있습니다. 하지만 그렇게되지는 않을 것입니다. 원래 시나리오에서는 실행중인 함수 내에서 대화 상자가 시작되었으므로 $ (document) .ready() 함수를 사용할 수 없습니다. – arkascha

관련 문제