如何使用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