2011-12-12 5 views
-1

내가 XPath는 위치 얻기 위해이 기능을 쓰기 :JQuery와 기능을 구현

function getXPath(node, path) { 
     path = path || []; 
     if(node.parentNode) { 
      path = getXPath(node.parentNode, path); 
     } 

     if(node.previousSibling) { 
      var count = 1; 
      var sibling = node.previousSibling 
      do { 
      if(sibling.nodeType == 1 && sibling.nodeName == node.nodeName) {count++;} 
      sibling = sibling.previousSibling; 
      } while(sibling); 
      if(count == 1) {count = null;} 
     } else if(node.nextSibling) { 
      var sibling = node.nextSibling; 
      do { 
      if(sibling.nodeType == 1 && sibling.nodeName == node.nodeName) { 
       var count = 1; 
       sibling = null; 
      } else { 
       var count = null; 
       sibling = sibling.previousSibling; 
      } 
      } while(sibling); 
     } 

     if(node.nodeType == 1) { 
      path.push(node.nodeName.toLowerCase() + (node.id ? "[@id='"+node.id+"']" : count > 0 ? "["+count+"]" : '')); 
     } 
     return path; 
     }; 

을 나는 iframe이 있습니다 :

JQuery와 (이 기능은 XPath를 얻을) 이제

<iframe id="frameID" width="100%" src="http://www.example.com"></iframe> 

하지만를 I 내 jquery 함수를 통합하는 방법에 문제가 있고 어디에서 iframe을 클릭하면 xpath 결과가 나옵니까?

+0

jQuery가 필요한 이유는 무엇입니까? 당신 스스로 xpath-function을 작성 했습니까? – Bergi

+0

내가 클릭 할 때 결과를 얻으려면 ... – Andrew

답변

3

당신은 그 기능을 썼습니까? - 그 코드는 거의 5 년 전에 DZone에 작성되었습니다 : http://snippets.dzone.com/posts/show/4349 - 여기에는 기능 사용법이 포함되어 있습니다.

+0

네, 괜찮아, 난 영어로 잘 못해, 미안해. – Andrew

0

iframe 위치가 포함 된 페이지와 동일한 도메인에있는 경우에만 그렇게 할 수 있습니다.

그렇다면 iframe (document.getElementById('frameId').contentDocument, MDN 참조)에서 문서를 가져 와서 클릭 이벤트 수신기를 추가하십시오. 수신중인 이벤트에는 대상 노드에 대한 참조가 포함됩니다.

+0

과 같은 도메인에서 아닌 경우 ??? – Andrew

+0

문서간에 의사 소통하는 데는 몇 가지 방법이 있지만 두 가지를 모두 제어 할 수 있어야합니다. "동일 출처 정책"(예 : [wikipedia] (http://en.wikipedia.org/wiki/Same_origin_policy)) 및 관련 내용 (예 : window.postMessage)을 찾습니다. – Bergi

관련 문제