나는 탭을 누를 때마다 공백을 삽입하는 대신 테이블에 포커스를 잃습니다. 탭을 사용하여 일반 탭 공간을 삽입하도록 수정하는 방법은 무엇입니까?포커스를 잃지 않고 contenteditable에서 탭하는 방법?
답변
이 같은 뭔가를 할 수 jQuery
사용 :
[contenteditable] {
white-space : pre-wrap;
}
불행하게도,이 그냥 기본 그대로
$('[contenteditable]').on('keydown', function(e) {
if(e.which === 9){
e.preventDefault();
$(this).html($(this).html() + '	'); //insert tab character
}
})
당신의 CSS를 가지고 있는지 확인하십시오. 커서가 텍스트의 끝에 있지 않으면 사물이 엉망이되기 때문입니다. 커서 위치를 가져 와서 해당 위치에 탭을 삽입해야합니다.
이러한 문제에 대처하기 위해, 당신은 좀 더 이벤트 핸들러를 소비해야합니다$('[contenteditable]').on('keydown', function(e) {
if (e.which === 9) {
//prevent from tabbing out
e.preventDefault();
var ce = this;
var $ce = $(ce);
var html = $ce.html();
var textNode = ce.firstChild;
var range = document.createRange();
var position = getSelection().getRangeAt(0).startOffset;
//place tab at cursor position
$ce.html([html.slice(0, position), '	', html.slice(position)].join(''));
//reset cursor position and place it after the tab
ce.focus();
range.setStart(textNode, position + 1);
range.setEnd(textNode, position + 1);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
}
});
이
올바른 위치에 탭을 배치하고 커서를 다시 설정합니다.작동하는 바이올렛 here을 볼 수 있습니다. 그러나 이것은 매우 초보적인 것이며 크롬에서만 작동 할 가능성이 매우 높습니다. 다른 브라우저 지원을 위해서는 스스로 찾아야합니다. 또한 탭 문자로 시작하고 끝나는 가장자리의 경우는 여기에서 실패하지만, 이것은 올바른 방향으로 조금 움직여 줄 것입니다.
아래 코드를 사용하십시오. 나는 그것을 테스트하지는 않았지만 잘 동작 할 것이다.
jQuery(document).ready(function(){
document.addEventListener("keydown", function(event) {
if(event.which == 9)
{
jQuery(this).val(jQuery(this).val()+""+	);
}
}
});
대답을 업데이트했습니다. 더 이상 입력 할 수 없습니다.) – PierreDuc
yes. 나는 변화를 만들었다. event.preventDefault는 여기서 일하지 않습니다. –
- 1. editText가 포커스를 잃지 않고 있습니다
- 2. 포커스를 잃지 않고 자동으로 변경 내용을 표시합니다.
- 3. SeekBar 포커스를 잃지 않고 ListView 행을 업데이트하십시오.
- 4. 포커스를 잃지 않고 DataGridviewComboBoxColumn에 값 추가
- 5. Visual Studio - 포커스를 잃지 않고 커서 이동
- 6. DataGridViewCell 포커스를 잃지 않고 배경색 변경
- 7. 포커스를 잃지 않고 맨 위의 Winform
- 8. 동적으로 포커스를 잃지 않고 viewPager에 페이지를 추가하십시오.
- 9. Flex Cairngorm - Datagrid에서 포커스를 잃지 않고 모델을 업데이트하는 방법?
- 10. 메인 JFrame에 포커스를 잃지 않고 ProgressMonitor 창을 사용하는 방법?
- 11. JPopupMenu가 포커스를 잃지 않아야합니다.
- 12. 요소가 포커스를 잃지 않음
- 13. RepeatButtons가 포커스를 잃지 않고 영원히 강조 표시되지 않았습니다.
- 14. 스윙 : CellEditor가 포커스를 잃지 않도록하기
- 15. WPF - ListView가 포커스를 잃지 않도록하기
- 16. 팝업이 결코 포커스를 잃지 않습니다
- 17. pyqt : mainwindow에 포커스를 잃지 마십시오
- 18. 포커스를 잃지 않고 편집하면서 새 JFrame을 여는 방법은 무엇입니까?
- 19. 바쁜 ListView에서 Spinner 포커스를 잃지 않고 TextView 업데이트
- 20. 포커스를 잃지 않고 텍스트 상자의 값을 저장하는 방법은 무엇입니까?
- 21. TextBox에서 포커스를 잃지 않고 Button을 클릭 할 수 있습니까?
- 22. TextBox가 포커스를 잃지 않고 변경 될 때 데이터 바인딩을 업데이트하십시오.
- 23. 목록 항목의 EditText에서 포커스를 잃지 않고 ListView를 업데이트하려면 어떻게해야합니까? (안드로이드)
- 24. Eclipse RCP : 포커스를 잃지 않고 편집기에서 뷰 활성화
- 25. 포커스를 잃지 않고 WPF Popup에서 마우스 오른쪽 버튼을 클릭하면 어떻게됩니까
- 26. 잃지 않고 컨텍스트에 그리는 방법?
- 27. 버튼을 눌렀을 때 요소가 포커스를 잃지 않게하려면?
- 28. 브라우저가 외부 앱 통화에 포커스를 잃지 않도록합니다.
- 29. PictureBox를 화살표 키에 포커스를 잃지 않게 만드시겠습니까?
- 30. 다른 응용 프로그램이 VB.net에서 포커스를 잃지 않도록하십시오.
작동하지 않습니다. 제 코드에 문제가 있습니까? \t \t
내 코드처럼 보이지 않습니다 .. keydown', preventDefault()'가 안에 들어 있어야합니다. – PierreDuc
@cosmo – PierreDuc