iOS 기기(모바일 Safari)의 입력 필드에서 텍스트를 프로그래밍 방식으로 선택
iOS 기기(예: iPhone, iPad에서 모바일 Safari를 실행하는 경우)에서 입력 필드의 텍스트를 프로그래밍 방식으로 선택하는 방법은 무엇입니까?
일반적으로 전화를 걸면 충분합니다..select()
에서 합니다.<input ... />
요소입니다. 그러나 이러한 장치에서는 작동하지 않습니다.선택하지 않고 기존 항목의 끝에 커서를 두면 됩니다.
input.setSelectionRange(0, 9999);
https://developer.mozilla.org/en/DOM/Input.select
이 스레드에서는 아무 것도 작동하지 않았습니다. iPad에서 작동하는 것은 다음과 같습니다.
// t is the input field
setTimeout(function() {
t.setSelectionRange(0, 9999);
}, 1);
이 바이올린을 참조하십시오. (입력 상자에 일부 텍스트를 입력하고 '텍스트 선택'을 클릭
iPod(iOS 6.0.1 5세대)의 입력 상자에서 텍스트를 선택하고 키보드를 열고 잘라내기/복사/제안... 메뉴를 표시합니다.
일반 Javascript를 사용합니다.jQuery에서 시도하지 않았습니다.
document.getElementById("p1").selectionStart = 0
document.getElementById("p1").selectionEnd = 999
999라는 숫자는 단지 샘플일 뿐입니다.이 숫자를 선택할 문자 수로 설정해야 합니다.
업데이트:
- iPod 5 - iOS 6.0.1 - 정상 작동.
- iPad1 - iOS5.1.1 - 텍스트만 선택됨선택 항목을 한 번 눌러 잘라내기/복사 메뉴 열기
- iPad2 - iOS4.3.3 - 텍스트만 선택됨선택 항목을 한 번 눌러 잘라내기/복사 메뉴 열기
두에는 클릭 할 수 있습니다.input
업데이트: (07-10-2013)
- iPod5 - iOS7.0.2 - 링크의 피들 사용:입력 상자에서 입력한 텍스트를 볼 수 없습니다.선택을 누르면 facebook.com (?)으로 리디렉션됩니다.뭐라고요?무슨 일이 일어나고 있는지 전혀 모릅니다.
업데이트: (14-11-2013)
- iOS 7.0.3 : Binki 업데이트의 코멘트 덕분에.
.selectionStart
그리고..selectionEnd
효과가 있습니다.
업데이트: (15-01-2015)
- iOS 8.x.x : Michael Siebert의 코멘트 덕분입니다.코멘트에서 발췌:포커스와 클릭 이벤트를 모두 청취한 다음 Timeout/.debounce를 설정하여 두 경우 모두 작동하도록 해야 했습니다. 탭핑을 통해 입력을 클릭하거나 포커스를 선택합니다.
부정적인 것을 증명하기는 어렵지만, 제 연구에 따르면 이것은 모바일 사파리의 버그입니다.
포커스()는 어느 정도 작동합니다. 성공하려면 두 번 이상의 탭이 필요할 수 있으며, 탭 자체가 필드 포커스를 제공하므로 해당 필드의 사용자 탭에 응답할 필요가 없습니다.안타깝게도 select()는 Mobile Safari에서 단순히 작동하지 않습니다.
당신의 최선의 방법은 Apple의 버그 보고서일 수 있습니다.
죄송합니다, 이전 게시물에서 당신이 자바스크립트로 답변을 원한다는 자바스크립트를 보지 못했습니다.
자바스크립트로 UIWebView에서 원하는 것을 얻기 위해, 저는 그것을 작동시키기 위해 두 개의 중요한 정보를 긁어모았습니다.모바일 브라우저에 대해 잘 모르겠습니다.
element.setSelectionRange(0,9999);
우리가 원하는 것을 합니다.mouseUp 이벤트가 선택을 취소하는 중입니다.
따라서(프로토타입 사용):
input.module', function{이것.선택 범위 설정(0, 9999);});input. ('mouseobserveup', 함수(이벤트) {event.stop();});
요령을 터득합니다.
맷
포커스가 작동하는 것처럼 보이지만 기본 이벤트에서 직접 호출해야 합니다. SetTimeout과 같은 것을 사용하여 포커스를 호출하는 것은 키보드를 불러오는 것처럼 보이지 않습니다.ios 키보드의 컨트롤이 매우 좋지 않습니다.상황이 좋지 않습니다.
저는 이 해결책을 찾느라 정신이 없었지만, 당신의 모든 답변이 저에게 또 다른 골칫거리를 열어주었습니다.
고객은 사용자가 iPad(외부 키보드 포함)에서 모두를 클릭하고 선택할 수 있기를 원했습니다.알아요, 미쳤어요...)
이 문제에 대한 저의 해결책은 사건들을 다시 정리하는 것이었습니다.Focus(포커스), Click(클릭), start(시작)를 차례로 누릅니다.
$('#myFUBARid').on('focus click touchstart', function(e){
$(this).get(0).setSelectionRange(0,9999);
//$(this).css("color", "blue");
e.preventDefault();
});
여러분들이 저를 수없이 도와주셨듯이, 저는 이것이 누군가에게 도움이 되기를 바랍니다.
Android 2.2와 함께 제공되는 Webkit에서는 다음과 같은 기능이 작동합니다.
function trySelect(el) {
setTimeout(function() {
try {
el.select();
} catch (e) {
}
}, 0);
}
iPad에서 iOS 7을 사용하여 이 작업을 수행할 수 있었던 유일한 방법은 실제로 사용하는 것이었습니다.<textarea></textarea>
대신에<input>
들판.
예.
<textarea onclick="this.setSelectionRange(0, 9999);">My text will be selected when textarea is clicked.</textarea>
텍스트 영역을 읽기만 하면 선택 트릭이 더 이상 작동하지 않기 때문에 사용자가 영역 내에서 텍스트를 변경하지 못하게 하는 방법이 더 어려웠습니다.
HTML5 호환 브라우저를 사용하는 경우placeholder="xxx"
당신의input
꼬리표. 그걸로 충분할 겁니다.
언급URL : https://stackoverflow.com/questions/3272089/programmatically-selecting-text-in-an-input-field-on-ios-devices-mobile-safari
'programing' 카테고리의 다른 글
Mocha로 Javascript 테스트 - console.log를 사용하여 테스트를 디버깅하려면 어떻게 해야 합니까? (0) | 2023.07.26 |
---|---|
PL/SQL에서 프로시저나 기능을 위해 언제 가야 합니까? (0) | 2023.07.26 |
jQuery를 사용하여 요소를 자동 높이로 애니메이션화 (0) | 2023.07.26 |
Angular 2 테스트 - 비동기 함수 호출 - 사용 시기 (0) | 2023.07.26 |
Xampp Code Igniter 3 + MariaDB 프로젝트를 github에 푸시하는 이상적인 방법은 무엇입니까? (0) | 2023.07.26 |