Javascript 从外部窗口中的弹出窗口打开链接,然后关闭原始弹出窗口

Javascript 从外部窗口中的弹出窗口打开链接,然后关闭原始弹出窗口,javascript,jquery,html,modal-dialog,Javascript,Jquery,Html,Modal Dialog,我需要从父窗口打开一个弹出窗口。我能够成功地做到这一点 现在我要做的是-假设一个弹出窗口打开,并且在弹出窗口中有一些链接,如果我尝试单击该链接,它应该在一个新窗口中打开该链接,并且原始的弹出窗口应该关闭 这是我的最爱。在这个小提琴,如果你点击应用按钮,然后它会打开一个弹出窗口,这是工作正常,但如果你点击任何链接在弹出窗口,然后该链接会在同一个弹出窗口打开,这是我不想要的。我想在一个新的外部窗口中打开那个链接,原来的弹出窗口应该被关闭 下面是JS代码- function open(url) {

我需要从父窗口打开一个弹出窗口。我能够成功地做到这一点

现在我要做的是-假设一个弹出窗口打开,并且在弹出窗口中有一些链接,如果我尝试单击该链接,它应该在一个新窗口中打开该链接,并且原始的弹出窗口应该关闭

这是我的最爱。在这个小提琴,如果你点击应用按钮,然后它会打开一个弹出窗口,这是工作正常,但如果你点击任何链接在弹出窗口,然后该链接会在同一个弹出窗口打开,这是我不想要的。我想在一个新的外部窗口中打开那个链接,原来的弹出窗口应该被关闭

下面是JS代码-

function open(url) {
    $('#blockdiv').fadeIn();
    $('#iframe').attr('src', url);
    $('#containerdiv').fadeIn();   
}

function close() {  
    $('#blockdiv').fadeOut();
    $('#containerdiv').fadeOut();  
}

$(document).ready(function() {
  $('ul').css({width: $('#containerdiv').width(),height:    $('#containerdiv').height()})
     $('#close').click( function() { close() })
     $('.JN_apply').click( function() { open($(this).data('url')); })

});
我在fiddle中给出的示例将打开www.ebay.com网站,但通常是我的页面将作为弹出窗口打开

有可能吗?如果是的话,有人能帮我吗

更新代码:-

现在,我已经开始使用jquerycolorbox来完成上面同样的事情-

下面是打开弹出窗口的父窗口代码-

<!DOCTYPE html>
<html>
    <head>
        <meta charset='utf-8'/>
        <title>Colorbox Examples</title>
        <style>
            body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
            a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
            h2{font-size:13px; margin:15px 0 0 0;}
        </style>
        <link rel="stylesheet" href="C:\Users\rj\Downloads\colorbox-master\example4\colorbox.css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script src="C:\Users\rj\Downloads\colorbox-master\jquery.colorbox.js"></script>
        <script>
            $(document).ready(function(){
                //Examples of how to assign the Colorbox event to elements
                $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});

            });
        </script>
    </head>
    <body>
        <h2>Other Content Types</h2>
        <p><a class='iframe' href="http://www.wikipedia.com">Outside Webpage (Iframe)</a></p>

        </body>
</html>
<html>
<head>
  <title>Apply</title>
</head>
<body>

<script>
function getUrlParameters() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, 
        function(m,key,value) {
            vars[key] = value;
        });
    return vars;
}
var id = getUrlParameters()["ID"];    
var title = getUrlParameters()["Title"];    
var id = unescape(id);
var title = unescape(title);

var myJScript = document.createElement('script');

myJScript.setAttribute('type', 'Apply');
myJScript.setAttribute('data-companyId', '40');
myJScript.setAttribute('data-jobTitle', id );
myJScript.setAttribute('data-email', 'admin@domain.net');

document.body.appendChild(myJScript); 
</script>
<hr>

<input name="Apply Online" type="button" id="Apply Online" value="Apply Online" ONCLICK="window.location.href='some_url'">

</body>
</html>

色盒示例
正文{字体:12px/1.2 Verdana,无衬线;填充:0 10px;}
a:链接,a:访问{文本装饰:无;颜色:#416CE5;边框底部:1px实心#416CE5;}
h2{字体大小:13px;边距:15px 0;}
$(文档).ready(函数(){
//如何将Colorbox事件指定给元素的示例
$(“.iframe”).colorbox({iframe:true,宽度:“80%”,高度:“80%”);
});
其他内容类型

下面是我的弹出窗口代码,它将有一个链接,我需要通过关闭原来的弹出窗口在新的外部窗口中打开-

<!DOCTYPE html>
<html>
    <head>
        <meta charset='utf-8'/>
        <title>Colorbox Examples</title>
        <style>
            body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
            a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
            h2{font-size:13px; margin:15px 0 0 0;}
        </style>
        <link rel="stylesheet" href="C:\Users\rj\Downloads\colorbox-master\example4\colorbox.css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script src="C:\Users\rj\Downloads\colorbox-master\jquery.colorbox.js"></script>
        <script>
            $(document).ready(function(){
                //Examples of how to assign the Colorbox event to elements
                $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});

            });
        </script>
    </head>
    <body>
        <h2>Other Content Types</h2>
        <p><a class='iframe' href="http://www.wikipedia.com">Outside Webpage (Iframe)</a></p>

        </body>
</html>
<html>
<head>
  <title>Apply</title>
</head>
<body>

<script>
function getUrlParameters() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, 
        function(m,key,value) {
            vars[key] = value;
        });
    return vars;
}
var id = getUrlParameters()["ID"];    
var title = getUrlParameters()["Title"];    
var id = unescape(id);
var title = unescape(title);

var myJScript = document.createElement('script');

myJScript.setAttribute('type', 'Apply');
myJScript.setAttribute('data-companyId', '40');
myJScript.setAttribute('data-jobTitle', id );
myJScript.setAttribute('data-email', 'admin@domain.net');

document.body.appendChild(myJScript); 
</script>
<hr>

<input name="Apply Online" type="button" id="Apply Online" value="Apply Online" ONCLICK="window.location.href='some_url'">

</body>
</html>

申请
函数getUrlParameters(){
var vars={};
var parts=window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,
功能(m、键、值){
变量[键]=值;
});
返回变量;
}
var id=getUrlParameters()[“id”];
var title=getUrlParameters()[“title”];
var id=unescape(id);
var title=unescape(title);
var myJScript=document.createElement('script');
setAttribute('type','Apply');
setAttribute('data-companyId','40');
myJScript.setAttribute('data-jobTitle',id);
myJScript.setAttribute('data-email','admin@domain.net');
document.body.appendChild(myJScript);

现在,在这种情况下,如何在单击Apply Online link后关闭弹出窗口,并在新的外部窗口中打开Apply Online link?我希望这个问题足够清楚。

试试看


只有当iframe中的页面是您的并且您可以处理其中的点击事件时才可能?但是在打开一个新的外部窗口后,我如何关闭原始的弹出窗口?在打开新窗口之前如何关闭它(在相同的过程中)?@Jim:我怎么做?我不确定。我尝试了上面的代码,但不知怎么的弹出窗口没有接近。在开始使用上述代码之前,我是否需要更改其中的任何内容?可能需要将
$
更改为
jQuery
。因此,
$.colorbox.close()
将变成
jQuery.colorbox.close()