如何使用JavaScript/jQuery在父頁面中使用來自JS變量的數據填充彈出窗口?如何打開彈出窗口並使用父窗口中的數據填充它?
在我的例子中,我有一個文件名數組。我在父窗口中最多列出五個,如果還有更多,我想提供一個鏈接打開一個彈出窗口並列出數組中的每個帖子。
因此,如果我打開一個包含<ul id="all_files"></ul>
的彈出窗口,如何將<li>
-項目添加到該列表中?
如何使用JavaScript/jQuery在父頁面中使用來自JS變量的數據填充彈出窗口?如何打開彈出窗口並使用父窗口中的數據填充它?
在我的例子中,我有一個文件名數組。我在父窗口中最多列出五個,如果還有更多,我想提供一個鏈接打開一個彈出窗口並列出數組中的每個帖子。
因此,如果我打開一個包含<ul id="all_files"></ul>
的彈出窗口,如何將<li>
-項目添加到該列表中?
父窗口:
<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>
它在ar ar = window.opener.getArray();中停止執行。和Firefox控制檯輸出:「錯誤:window.opener.getArray不是一個函數」。即使它存在也沒有拼寫錯誤。 – Christoffer 2009-11-16 11:28:12
我已經用firebug在Firefox 3.5.x中測試過它! – TheVillageIdiot 2009-11-16 12:03:54
對不起,這是我的壞...實際上這個函數是從iframe調用的,我相信那個框架會作爲父...,但那是錯誤的。所以要訪問Iframe的JS函數,可以這樣做:window.opener.window.frames.THIS_FRAME.getFiles(); Iframe的名稱和ID是「THIS_FRAME」。 – Christoffer 2009-11-16 12:35:17
是文件名的父窗口已經可用?如果不是,你如何獲得前5名? – TheVillageIdiot 2009-11-16 08:19:06
是的,它們使用Ajax收集並存儲在父窗口的數組中。 – Christoffer 2009-11-16 08:23:00