跨浏览器兼容打开新选项卡/窗口(浏览器)

时间:2013-07-25 07:45:48

标签: javascript html

我相信你可以帮我解决这个问题:

我最近遇到了在php / javascript网站上打开新标签/弹出窗口的一些问题。

我目前的解决方案如下:

<script type="text/javascript">

            function Popup(url) {
                window.open(url);
            }

    </script> 


    <div class="link_box">

        <a class="link_box_link" href="javascript:Popup('http://www.<website>.com')"><website-name></a>

    </div>

然而,我的一些使用IE6-8的同事似乎无法打开链接。现在,我希望您能帮助我找到最佳的跨浏览器兼容解决方案,以打开新的选项卡或窗口。任何帮助或提示将不胜感激!

2 个答案:

答案 0 :(得分:6)

好的,看了所产生的评论(包括我的评论)后,我决定在答案中总结一下。

跨浏览器兼容的解决方案就是这样:(没有Javascript)

<a href="http://www.google.com" target="_blank"> LINK TO GOOGLE </a>

了解它here

可能不起作用的原因有几个

  • 浏览器设置;
  • 弹出窗口拦截器

关于这些,你无能为力。您的脚本无法编辑浏览器设置; AFAIK,没有通用的方法来规避弹出窗口拦截器(感谢上帝!)。 虽然,有一些解决方法在特定条件下工作。虽然使用脚本来考虑和查询所有这些条件可能是一项令人沮丧的任务,但我建议使用带有iframe的模态窗口仍然有效。

注意:实际上,使用此功能不会给弹出窗口阻止程序带来太多麻烦(尽管仍有可能)。请注意,大多数时候弹出窗口阻止程序都是通过检测客户端脚本以打开新窗口来完全触发的 - 这是您尝试触发它的方法之一。

答案 1 :(得分:0)

您必须像评论部分中保存的Joum一样操纵目标。或者你很简单地使用posible return false;

<a class='popup' href='www.websitename.com'>website</a>

$('a.popup').live('click', function(){
    newwindow=window.open($(this).attr('href'),'','height=200,width=150');
    if (window.focus) {newwindow.focus()}
    return false;
});