window.open在IE中打开两个弹出窗口

时间:2013-03-17 15:49:09

标签: javascript popupwindow

我在IE8中遇到了一个非常奇怪的行为。

我有一个简单的javascript函数来创建一个弹出窗口。弹出窗口创建正常,但父窗口转发到只打印[object]的完全空白窗口。我必须按后退按钮才能返回原始页面。

<a href='javascript:window.open("http://endic.naver.com/search.nhn?query=In&searchOption=entry_idiom","Dictionary","width=500, height=500")' target="_blank">Click me</a>

Chrome中没有问题,只有IE。我该如何摆脱这种恼人的行为?

3 个答案:

答案 0 :(得分:9)

问题是Internet Explorer按预期执行代码,但也在新文档中显示window.open的返回值。由于window.open返回对新文档的对象引用,因此会将其转换为字符串 - [object Object] - 并显示。

要解决此问题,您可以添加return false以防止浏览器返回任何内容。

<a href='javascript:window.open("http://endic.naver.com/search.nhn?query=In&searchOption=entry_idiom","Dictionary","width=500, height=500"); return false' target="_blank">Click me</a>

编辑 - 请参阅此答案下方的OP评论。解决方案是将JavaScript移动到onclick属性,并将target属性更改为与弹出名称相同。

<a href="javascript:void(0);" onclick='window.open("http://endic.naver.com/search.nhn?query=In&searchOption=entry_idiom","Dictionary","width=500, height=500");' target="Dictionary">Click me</a>

答案 1 :(得分:2)

试试这个:http://jsfiddle.net/kelervin/Pf8Rw/

<强> HTML

    <a href="http://www.google.com" class="open-popup">test</a>

<强> JQUERY

    $('.open-popup').click(function(e) {
        e.preventDefault();
        window.open(this.href, '_blank', 'width=300,height=200');
    });

注意:在chrome和IE 8中测试

答案 2 :(得分:0)

您需要禁用跟踪出站链接。将以下javascript代码添加到index.html文件:

<script type="text/javascript"> var clicky_custom = clicky_custom || {}; clicky_custom.outbound_disable = 1; </script>