Codemirror 편집기의 초점 감지

알파 드몬

내가 만들고있는 웹 앱에서 codemirror를 사용하고 있으며 페이지에 여러 편집기가 있습니다. 실행 취소 및 다시 실행 버튼도 있으며 작동합니다. 그러나 if 문을 사용하여 포커스 된 항목을 결정한 다음 해당 텍스트 상자에 실행 취소 또는 다시 실행 기능을 적용하지 않는 한 한 편집기 만 실행 취소하도록 설정할 수 있습니다. jQuery와 JavaScript에서 몇 가지 변형을 시도했지만 아무 소용이 없습니다. 이것은 내가 작업하려고 시도하는 코드 블록 중 하나입니다. codemirror 설정을 보유하는 실제 변수는 "codeeditor1"이고 "# editor1"은 텍스트 상자의 ID입니다.

if ($("#editor1").is(':focus')) {
  undo.addEventListener('click', function() {
      codeeditor1.undo();
  }, false);
  redo.addEventListener('click', function() {
      codeeditor1.redo();
  }, false);
}

또한 "cm.hasFocus ()"= boolean 메서드의 설명서에 따라 시도했습니다.

if (codeeditor1.hasFocus() == true) {
    undo.addEventListener('click', function() {
        codeeditor1.undo();
    }, false);
    redo.addEventListener('click', function() {
        codeeditor1.redo();
    }, false);
}

나는 이제 논리적 코드 배치를 위해 이것을 시도했지만 여전히 운이 좋지 않습니다. 아마도 codemirror 방법의 버그일까요?

undo.addEventListener('click', function() {
    if (codeeditor1.hasFocus() == true) {
        codeeditor1.undo();
    }
}, false);

redo.addEventListener('click', function() {
    if (codeeditor1.hasFocus() == true) {
        codeeditor1.redo();
    }
}, false);
알파 드몬

괜찮아! 그래서 나는 그것을 알아 냈습니다.

문제는 사용자가 버튼을 눌렀을 때 당연히 포커스가 제거되고 "hasFocus"의 결과가 당연히 거짓임을 의미하는 테스트를 시도한다는 것입니다 (제대로 생각하지 않았습니다). 이 문제를 해결하기 위해 변수를 만들었습니다. 편집자 중 하나가 1, 2 또는 3에 초점을 맞출 때 변수가 업데이트됩니다. 그런 다음 버튼을 클릭하여 변수 값이 무엇인지 확인한 다음 실행 취소를 실행하기 전에 해당 편집기에 초점을 다시 적용합니다. 또는 현재 포커스가있는 편집기에서 다시 실행하십시오.

var detectfocus = "0";

codeeditor1.on('focus', function() {
    detectfocus = "1";
});
codeeditor2.on('focus', function() {
    detectfocus = "2";
});
codeeditor3.on('focus', function() {
    detectfocus = "3";
});


undo.addEventListener('click', function() {
    if (detectfocus === "1") {
        codeeditor1.focus();
        codeeditor1.undo();
    } else if (detectfocus === "2") {
        codeeditor2.focus();
        codeeditor2.undo();
    } else if (detectfocus === "3") {
        codeeditor3.focus();
        codeeditor3.undo();
    }
}, false);

redo.addEventListener('click', function() {
    if (detectfocus === "1") {
        codeeditor1.focus();
        codeeditor1.redo();
    } else if (detectfocus === "2") {
        codeeditor2.focus();
        codeeditor2.redo();
    } else if (detectfocus === "3") {
        codeeditor3.focus();
        codeeditor3.redo();
    }
}, false);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Draft.js 편집기의 초점을 잃는 블러 감지

분류에서Dev

패널 내의 CodeMirror 편집기

분류에서Dev

codemirror의 새 모드 : 스트림에서 빈 줄 감지

분류에서Dev

편집 상자의 초점이 유지되는 것을 원하지 않지만 파란색 초점 경계선이 유지되기를 원합니까?

분류에서Dev

VSCode : 초점을 맞출 때 분할 편집기의 크기가 조정되지 않도록 방지 하시겠습니까?

분류에서Dev

이미지의 초점

분류에서Dev

Cypress에서 Codemirror 편집기 필드를 지우려면 어떻게해야합니까?

분류에서Dev

Enter 키의 기본 동작을 재정의하지 않고 codemirror에서 새 줄을 감지합니다.

분류에서Dev

이미지의 초점 픽셀 받기

분류에서Dev

동일한 페이지에서 두 개의 Draftjs 편집기를 어떻게 초기화합니까?

분류에서Dev

커서가 다음 편집 텍스트에 초점을 맞추지 않음

분류에서Dev

Atom 편집기의 autocomplete + 패키지의 제안 순서 / 점수를 어떻게 변경할 수 있습니까?

분류에서Dev

Jquery 어설 션 및 Codemirror 편집기 예상

분류에서Dev

CodeMirror는 편집기 인스턴스를 삭제합니다.

분류에서Dev

두 물체의 충돌 지점 감지

분류에서Dev

matplotlib 이미지의 초점 제어

분류에서Dev

: jQuery의 초점

분류에서Dev

두 Windows 레지스트리 편집기 Regedit와 Regedt32의 주요 차이점은 무엇입니까?

분류에서Dev

새 구조체 초기화 감지

분류에서Dev

Angular Reactive Forms Dynamic Nested Array는 초점을 잃을 때의 변화를 감지합니다.

분류에서Dev

jSpinner의 버튼에서 잃어버린 초점을 감지 할 수 있습니까?

분류에서Dev

편지의 알파벳 점수 찾기

분류에서Dev

특정 지점에서 파일 읽기 / 편집

분류에서Dev

초점이 맞지 않을 때 TextField의 커서 숨기기

분류에서Dev

React-codemirror 2 linting 기능이 작동하지 않습니다.

분류에서Dev

초점에 대한 <mat-error>의 오류 상태 지우기

분류에서Dev

공유 데이터가있는 앱의 초기 지점

분류에서Dev

eclipse / matlab의 텍스트 편집기가 12.04로 업그레이드 한 후 가끔 초점을 잃습니다.

분류에서Dev

eclipse / matlab의 텍스트 편집기가 12.04로 업그레이드 한 후 가끔 초점을 잃습니다.

Related 관련 기사

  1. 1

    Draft.js 편집기의 초점을 잃는 블러 감지

  2. 2

    패널 내의 CodeMirror 편집기

  3. 3

    codemirror의 새 모드 : 스트림에서 빈 줄 감지

  4. 4

    편집 상자의 초점이 유지되는 것을 원하지 않지만 파란색 초점 경계선이 유지되기를 원합니까?

  5. 5

    VSCode : 초점을 맞출 때 분할 편집기의 크기가 조정되지 않도록 방지 하시겠습니까?

  6. 6

    이미지의 초점

  7. 7

    Cypress에서 Codemirror 편집기 필드를 지우려면 어떻게해야합니까?

  8. 8

    Enter 키의 기본 동작을 재정의하지 않고 codemirror에서 새 줄을 감지합니다.

  9. 9

    이미지의 초점 픽셀 받기

  10. 10

    동일한 페이지에서 두 개의 Draftjs 편집기를 어떻게 초기화합니까?

  11. 11

    커서가 다음 편집 텍스트에 초점을 맞추지 않음

  12. 12

    Atom 편집기의 autocomplete + 패키지의 제안 순서 / 점수를 어떻게 변경할 수 있습니까?

  13. 13

    Jquery 어설 션 및 Codemirror 편집기 예상

  14. 14

    CodeMirror는 편집기 인스턴스를 삭제합니다.

  15. 15

    두 물체의 충돌 지점 감지

  16. 16

    matplotlib 이미지의 초점 제어

  17. 17

    : jQuery의 초점

  18. 18

    두 Windows 레지스트리 편집기 Regedit와 Regedt32의 주요 차이점은 무엇입니까?

  19. 19

    새 구조체 초기화 감지

  20. 20

    Angular Reactive Forms Dynamic Nested Array는 초점을 잃을 때의 변화를 감지합니다.

  21. 21

    jSpinner의 버튼에서 잃어버린 초점을 감지 할 수 있습니까?

  22. 22

    편지의 알파벳 점수 찾기

  23. 23

    특정 지점에서 파일 읽기 / 편집

  24. 24

    초점이 맞지 않을 때 TextField의 커서 숨기기

  25. 25

    React-codemirror 2 linting 기능이 작동하지 않습니다.

  26. 26

    초점에 대한 <mat-error>의 오류 상태 지우기

  27. 27

    공유 데이터가있는 앱의 초기 지점

  28. 28

    eclipse / matlab의 텍스트 편집기가 12.04로 업그레이드 한 후 가끔 초점을 잃습니다.

  29. 29

    eclipse / matlab의 텍스트 편집기가 12.04로 업그레이드 한 후 가끔 초점을 잃습니다.

뜨겁다태그

보관