2009-11-16 62 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

相关问题