2009-11-16 47 views
2

如何使用JavaScript/jQuery在父頁面中使用來自JS變量的數據填充彈出窗口?如何打開彈出窗口並使用父窗口中的數據填充它?

在我的例子中,我有一個文件名數組。我在父窗口中最多列出五個,如果還有更多,我想提供一個鏈接打開一個彈出窗口並列出數組中的每個帖子。

因此,如果我打開一個包含<ul id="all_files"></ul>的彈出窗口,如何將<li>-項目添加到該列表中?

+0

是文件名的父窗口已經可用?如果不是,你如何獲得前5名? – TheVillageIdiot 2009-11-16 08:19:06

+0

是的,它們使用Ajax收集並存儲在父窗口的數組中。 – Christoffer 2009-11-16 08:23:00

回答

3

父窗口:

<span id="popup"> Click to Open Popup </span> 

<script type="text/javascript"> 
var ar=new Array("Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", 
       "Item 7", "Item 8", "Item 9", "Item 10"); 
function getArray(){ 
    return ar; 
} 
$(document).ready(function(){ 
    $("span#popup").click(function(){ 
     var p=window.open("Popup.html"); 
    }); 
}); 
</script> 

彈出窗口:

<ul id="list"></ul> 
<script type="text/javascript"> 
    if(window.opener && !window.opener.closed){ 
     var ar= window.opener.getArray(); 
     var items=""; 
     for(var i=0;i<ar.length;i++){ 
      items +="<li>" + ar[i] + "</li>"; 
     } 
     $("ul#list").html(items); 
    } 
</script> 
+0

它在ar ar = window.opener.getArray();中停止執行。和Firefox控制檯輸出:「錯誤:window.opener.getArray不是一個函數」。即使它存在也沒有拼寫錯誤。 – Christoffer 2009-11-16 11:28:12

+0

我已經用firebug在Firefox 3.5.x中測試過它! – TheVillageIdiot 2009-11-16 12:03:54

+0

對不起,這是我的壞...實際上這個函數是從iframe調用的,我相信那個框架會作爲父...,但那是錯誤的。所以要訪問Iframe的JS函數,可以這樣做:window.opener.window.frames.THIS_FRAME.getFiles(); Iframe的名稱和ID是「THIS_FRAME」。 – Christoffer 2009-11-16 12:35:17

相關問題