2013-10-22 85 views
0

如果我不知道父頁上有多少個iframe以及有問題的順序,我如何從父項獲取iframe中的變量。例如,我知道所討論的iframe是第二個,所以我可以選擇windows.frames[1]。但如果我不知道這是第二個,我將如何通過ID選擇它。從父項獲得iframe中的變量

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 
     <title>Testing</title> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js" type="text/javascript"></script> 
     <style type="text/css"> 
     </style> 
     <script type="text/javascript"> 
      $(function(){ 
       $('#getValues').click(function(){ 
        //This works, but I don't want to select the iframe by the number since I don't know it. 
        console.log(
         window.frames[1], 
         window.frames[1].window, 
         window.frames[1].window.getMe 
        ); 
        console.log(
         window.frames['myIFrame'], 
         window.frames['myIFrame'].document, 
         window.frames['myIFrame'].window, 
         document.getElementById('myIFrame'), 
         document.getElementById('myIFrame').window 
        ); 
       }); 
      }); 
     </script> 
    </head> 

    <body> 
     <button id="getValues">getValues</button> 
     <div><iframe src="otherIframe.html"></iframe></div> 
     <!-- iframe3_get.html only sets global variable getMe to something. --> 
     <div><iframe id="myIFrame" src="iframe3_get.html"></iframe></div> 
    </body> 
</html> 
+0

與jQuery你可以嘗試,並通過其確切來源$目標框架(「IFRAME [SRC =‘iframe3_get.html’]」)......你可以通過window.frames循環,並檢查SRC ATTR – Joe

+0

@Joe。我認爲這很容易,但我不像加快收藏等等。 – user1032531

+0

對於這個問題在循環中,您可以針對您喜歡的任何屬性 – Joe

回答

0

在波紋管例如,getM1getMe2將相等。這似乎不是一個很好的答案,但它是我唯一的答案。如果這是一個不好的答案,並且您選擇將其投票,請提供更好的答案。

$('#getValues').click(function(){ 
    var getMe1=window.frames[1].window.getMe; 
    for (var i = window.frames.length - 1; i >= 0; i--) { 
     if(window.frames[i].frameElement.id=='myIFrame'){ 
      var getMe2=window.frames[i].frameElement.getMe; 
      break; 
     } 
    } 
}); 
+0

http://stackoverflow.com/questions/19565696/get-iframe-of-given-id描述了另一種解決方案。這可能是一個更好的解決方案。 – user1032531