2011-10-18 1 views
0

Jsfiddle의 새로운 자녀 에를 keyDown() 함수를 추가 http://jsfiddle.net/qTEmc/1/ 나는의 contentEditable에 추가 된 링크에 대한 키 누르기 이벤트와 이벤트를 연결해야은의 contentEditable 사업부

.

링크 된 jfiddle의 contenteditable 영역에 입력을 시도하면 링크가 만들어지고 그 안에 입력 할 수 있음을 알 수 있습니다. 나는 언론 보도를하면 새 줄을서야한다. 내가 원하는 것은 새 링크에서 함수를 트리거하는 리턴을 누르는 것입니다. 진도를 위해서, 나는 단지 그 순간에 경고를 돌려 주려고 노력하고있다.

누구든지 신뢰할 수있는 방법을 알고 있습니까?

답변

1

키 이벤트를 발생시키지 않으므로 링크 자체에서 키 이벤트를 감지 할 수 없습니다. 대신, contenteditable 요소에 대한 기존 keypress 처리기를 적용하여 선택 항목을 검사하여 링크 내에 있는지 확인해야합니다. 이를 수행하는 함수가 있습니다. 나도 updated your demo입니다.

function selectionInsideLink() { 
    var node = null, sel; 

    // Get the selection container node 
    if (window.getSelection) { 
     sel = window.getSelection(); 
     if (sel.rangeCount) { 
      node = sel.getRangeAt(0).commonAncestorContainer; 
     } 
    } else if (document.selection) { 
     sel = document.selection; 
     if (sel.type != "Control") { 
      node = sel.createRange().parentElement(); 
     } 
    } 

    // Check if the node is or is contained inside a link 
    while (node) { 
     if (node.nodeType == 1 && node.tagName.toLowerCase() == "a") { 
      return true; 
     } 
     node = node.parentNode; 
    } 
    return false; 
} 
+0

나는 당신이 내 영웅이라고 말했습니까? 나는 범위가 넓어서 선택하기에 매우 도움이된다. 감사. – daveyfaherty