2012-03-18 3 views
0

iframe에서 함수를 호출하고 상위 창에서 해당 함수로 데이터를 전달하는 방법을 연구 중입니다. iframe과 부모 창이 모두 동일한 도메인에 있습니다. SCORM을 통해 추적해야하는 iframe의 탐색 기능이 있으며 사용자가 iframe의 링크를 클릭하면 기본 창에서 함수를 호출하고 함수에 currentPage를 보내야합니다. 링크는 이와 같은 배열에 있습니다. 기본 창에서 goToPage()라는 함수를 호출하고 goToPage 함수의 측면에있는 기본 창에도있는 currentPage를 전달해야합니다. 누구든지이 문제를 도와 줄 수 있습니까? 당신이 자바 스크립트로 나를 보여줄 수 있다면 그것은 좋을 것입니다. 미리 감사드립니다.iframe에서 기본 창으로 함수를 호출하고 해당 함수에서 데이터를 전달하는 데 도움이 필요합니다.

function AddNav(links, linkURL) { 

var links = new Array(); 
links[0] = "linkName1"; 
links[1] = "linkName2"; 

var linkURL = new Array(); 
linkURL[0] = "linkURL1.html"; 
linkURL[1] = "linkURL2.html"; 

document.write('<ul class="nav">'); 

for (i=0; i<links.length; i++) { 
    document.write('<li class="linkNum">'+links[i].link(linkURL[i])+'</li>'); 

} 
document.write('</ul>'); 

getElementsByClassName("linkNum")[0].onclick = function() { 

currentPage = 0; 
var sendData = parent.currentPage; 
}); 

getElementsByClassName("linkNum")[1].onclick = function() { 

currentPage = 1; 
var sendData = parent.currentPage; 
}); 

} 

function getElementsByClassName(linkNum) { 
    var elements = document.getElementsByTagName("*"); 
    var found = []; 

    for(var i=0; i < elements.length; i++) { 
     if (elements[i].className == linkName) { 
      found.push(elements[i]); 
     } 
    } 
    return found; 
} 

답변

0

다음은 샘플입니다.

부모

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
     "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <title></title> 
    <script type="text/javascript"> 
     function callFunction(functionName, args) { 
      debugger; 

      var fn = window[functionName]; 
      if(typeof fn === 'function') { 
       fn(args); 
      } 
     } 

     function aFunction(msg){ 
      alert(msg) 
     } 
    </script> 

</head> 
<body> 
<iframe src="frame.html"></iframe> 
</body> 
</html> 

프레임 :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
     "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <title></title> 
    <script type="text/javascript"> 
     window.parent.callFunction('aFunction','aMessage!'); 
    </script> 
</head> 
<body> 


</body> 
</html> 
관련 문제