2010-05-07 3 views
0

Firefox 3.6.3에서 실행되는 다음 JavaScript가 문서에있는 모든 FRAMESET 요소를 삭제하지만, 대신 XPath 표현식을 사용하여 FRAMESET 요소를 선택하는 비슷한 스크립트는 그렇지 않습니다. document.evaluate()은 단순히 FRAMESET 요소와 일치하지 않습니까? XPath 표현식에 오류가 있습니까? 다른 오류가 있습니까?JavaScript에서 XPath 표현식으로 프레임 세트를 반복할까요?

var framesets = document.evaluate("//frameset", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); 
for (var i = 0; i < framesets.length; i++) { 
    framesets[i].parentNode.removeChild(framesets[i]); 
} 

답변

1

되는 XPathResult는 반복자 틱 것 같습니다 :

var framesets = document.getElementsByTagName('frameset'); 
for (var i = 0; i < framesets.length; i++) { 
    framesets[i].parentNode.removeChild(framesets[i]); 
} 

는 XPath 식 (실패)를 사용하여 모든 FRAMESET 요소를 선택

메소드 document.getElementsByTagName() (성공)를 사용하여 모든 FRAMESET 요소를 선택할 . 길이 속성이 없습니다.

https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate

framesets.length은 정의되지 않습니다. 즉, Here Be Be Dragons.

+0

네, 맞습니다. 비슷한 대답을하려고했을 뿐이에요. –

+0

여기에 답을 복사하면 좋을 것입니다. '그 페이지는 더 이상 존재하지 않습니다. – Doug

관련 문제