2012-03-18 5 views
0

私はiframeから関数を呼び出し、その関数に親ウィンドウでデータを渡す方法を研究しています。 iframeと親ウィンドウは同じドメインにあります。私はiframeにナビゲーションがあり、SCORMを介して追跡する必要があり、ユーザーがiframe内のリンクをクリックすると、メインウィンドウ内の関数を呼び出して関数にcurrentPageを送信する必要があります。リンクはこのような配列にあります。メインウィンドウでgoToPage()という関数を呼び出し、メインウィンドウのgoToPage関数の側にあるcurrentPageを渡す必要があります。誰もこの問題で私を助けることができますか?もしあなたがjavascriptで私を見せてくれればそれは素晴らしいだろう。前もって感謝します。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> 
関連する問題