如何创建一个允许用户单击链接,关闭窗口并在第一个窗口中打开链接的弹出窗口?

时间:2011-09-08 11:09:07

标签: javascript html popup hyperlink

这就是我想要做的......

因此,用户正在浏览我的网站并点击“按类别查看”链接,此链接会打开一个弹出窗口,其中包含一系列图片,这些图片链接到我网站的不同部分。当用户点击其中一个时,我希望能够关闭弹出窗口并打开原始窗口中的链接。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

function openClosePopup (el) {
    window.opener.location.href = el.href;
    window.close();
    return true;
}

所以你的HTML是

<a href="#some_url" onclick="return !openClosePopup(this)">Click me</a>

要打开弹出窗口,您可以使用相同的技巧:

function openPopup (el) {
    window.open(el.href,'name','height=400,width=200');
    return true;
}

你的HTML:

<a href="#some_url" onclick="return !openPopup(this)">Open windows</a>

答案 1 :(得分:0)

由于弹出窗口阻止程序,我不建议使用弹出窗口进行导航。使用一些文档内解决方案:

您可以使用Fancybox jQuery插件:http://fancybox.net/

它具有很酷的功能,可以在其弹出式窗口中插入一堆HTML。

点击fancybox窗口中的链接后,文档将重新加载。

修改

<a id="categories-trigger" href="#categories">View by categories</a>
<div class="hidden-categories">
  <div id="categories"> 
    <!-- Your code from the link you provided. Only from inside <body> tag -->
  </div> 
</div>

和JS代码:

<script type="text/javascript">
    $(function(){
      $("#categories-trigger").fancybox({ /* fancybox parameters here */ });
    });
</script>

当然,您需要包含jquery和jquery.fancybox JS脚本。

和其他CSS代码:

.hidden-categories #categories{
  display:none;
}

编辑2

#categories{
  overflow: auto;
  width: 820px;
  height: 820px;
}

我的错误是默认情况下无法隐藏fancybox内容,只能在容器中隐藏。在这些变化之后,fancybox将起作用。

编辑3

尝试将JS代码更改为此代码:

$(window).load(function(){
  $("#categories-trigger").fancybox({ /* fancybox parameters here */ });
});

脚本将在加载图像后执行。