2015-02-11 71 views
0

我已经openned我在Internet Explorer的选项卡的应用程序说“TAB1”,并通过点击一个按钮,说:“Button1的”在“TAB1”,弹出说“POP -UP1“将打开,在”POP-UP1“屏幕中,如果我点击一个按钮,它将在”TAB1“屏幕(父屏幕1)中添加一些元素。的Javascript弹出问题

现在我在另一个选项卡中打开同一个应用程序,在同一个IE浏览器窗口中显示“TAB2”,然后单击“button1”打开弹出窗口中相同的“POP-UP1”(因为窗口。 open()函数代码与相同的弹出式名称相同)。现在,当我尝试在“TAB2”(父屏幕2)中添加一些元素时,但不是添加到“TAB2”,而是添加了“TAB1”屏幕中的元素。

如何编写JavaScript代码在从哪个弹出启动正确的主画面添加元素。我想要相同的弹出窗口为所有打开的选项卡工作,而不是打开来自不同选项卡的许多弹出窗口。

请帮帮我。

+0

很高兴看到一些代码,如用于打开弹出窗口的函数....(通常“parent.opener”应该足够....) – Federico 2015-02-11 11:03:10

+0

Window.open(URL,'mypopup','高度= 50,宽度= 50' ) – 2015-02-11 19:06:47

+0

Eventhough我用parent.opener是指TAB1屏幕,而不是指TAB2 – 2015-02-11 19:08:16

回答

0

我认为是因为弹出窗口的名称是相同的: 弹出的parent.opener是第一个选项卡...所以它总是会引用它。

我所能想到的是,对于打开网站的每个标签,有一个不同的弹出式名称

这样,您将有2个(或以上)的弹出窗口和各将把自己parent.oopener。

试试这个:

var myTime=new Date().getTime(); 
var popupName="mypopup_"+myTime; 
var myPopup=null; 
function popMypopup(URL){ 
    myPopup=window.open(URL,popupName,"height=50,width=50"); 
    myPopup.focus(); 
} 

弹出窗口使用

popMypopup('your/url/here.html') 
+0

喜费德里科... TNKü这么多的信息.​​..但我已经指出这..但我们需要在单个选项卡中执行此操作。这就是为什么我发布在stackoverflow ...希望得到一个单一窗口的解决方案...像重新设置旧的弹出窗口的所有参数,然后在同一窗口中打开新的弹出窗口.... – 2015-02-13 18:51:05

0

你可以试试,看看弹出的父揭幕战指的是当前窗口...如果它没有关闭并重新打开它。

事情是这样的:

var myPopup=null; 
function popMypopup(URL){ 
     myPopup=window.open(URL,"mypopup","height=50,width=50"); 
     myPopup.focus(); 
     if(myPopup.parent.opener!=window){ 
      myPopup.close(); 
      popMypopup(URL); 
     } 
    } 

PS:只测试在IE浏览器...但我相信它应该在所有的浏览器。