2012-08-31 2 views
0

주어진 노드가 웹 페이지의 선택 범위와 교차하는지 찾기 위해 Firefox 확장 프로그램을 만들고 있습니다. 나는 파이어 폭스 버전 9 이하에서이 코드를 사용하는 경우node의 ownerDocument 속성이 null입니다.

var rangeIntersectsNode = function(range, node) { 
     var nodeRange = node.ownerDocument.createRange(); 
     try { 
      nodeRange.selectNode(node); 
     } 
     catch(e) { 
      nodeRange.selectNodeContents(node); 
     } 

     return range.compareBoundaryPoints(content.Range.END_TO_START, nodeRange) == -1 && 
     range.compareBoundaryPoints(content.Range.START_TO_END, nodeRange) == 1; 
    } 

, 나는 ownerDocument is null

사람이 무엇이 잘못되었는지 말해 수 말한다 콘솔에서 오류가 발생합니다 :이를 위해, 나는 다음과 같은 코드를 사용하고 여기에 내가 어떻게 바르게 설정할 수 있니? 이전 버전의 브라우저에 해당하는 API가 있습니까?

답변

2
+0

감사합니다. 그러나이 코드를 최신 브라우저 (Firefox 10 이상)에서 실행하면이 오류가 발생하지 않습니다. 나는 그 이유를 알 수 없었다. –

+1

@quad_damage : 그럼에도 불구하고'node'가 문서인지 어떻게 확인하나요? 우리는 왜 파이어 폭스 10에서 코드가 작동하는지 알지 못합니다. (그 이유는 여러분이 보여준 코드 스 니펫 밖일 수 있습니다.) 질문에 대한 답을 얻었습니다. 즉'node.ownerDocument'가'null 일 수있는 방법 '. 더 자세히 조사하는 것은 당신에게 달려 있습니다. –

+0

감사합니다. 나는 그것을 더 자세히 조사 할 것이다. –

관련 문제