0

这是场景,我有一个带有打开fancybox iframe 窗口的按钮的页面。iframe 内容中包含一个链接,该链接将使用target="_blank". 我想点击触发一个javascript函数来关闭fancybox窗口以及打开新窗口。

使用jquery,我绑定了一个简单的点击函数来调用parent.$.fancybox.close();,但这不会将点击返回给浏览器以在新窗口中触发链接。

我不想使用window.open它,因为它 99% 的时间都被阻止了,我只需要发生默认行为。

如何在让正常行为发生的同时调用关闭函数 onclick?

编辑

添加代码:

打开fancybox iframe 的页面。

<a href="http://something.com" id="OpenIframeLink">open fancybox</a>
<script>
$("#OpenIframeLink").fancybox({
    'padding': '20',
    'width': 450,
    'height': 550,
    'scrolling': 'no',
    'type': 'iframe',
    'href': '/content.asp?url=' + encodeURIComponent($("#OpenIframeLink").attr('href')),
    'showCloseButton': false
});
</script>

现在此代码位于 iframe fancybox 窗口中的 content.asp 页面上

<div id="message">
    <a href="http://something.com" target="_blank">click me</a>
</div>

<script type="text/javascript">
    $('#message a').click(function() {
      parent.$.fancybox.close();

      //now it should open the new window as a standard default click
      //as if this function wasn't bound to the click
    });
</script>
4

1 回答 1

1

检查此链接http ://www.techfoobar.com/2012/jquery-programmatically-clicking-a-link-and-forcing-the-default-action

免责声明:这是我写的一篇文章。

该技术涉及动态创建一个form元素,其中链接href作为其属性,action链接target作为其target属性,然后通过代码触发其提交(幸运的是浏览器允许)

于 2012-10-18T11:57:19.953 回答