jQuery如何在新窗口打开链接并设置小尺寸(不是标签页)?

5

我需要在新窗口(不是标签页)中打开某些链接,并设置特定的尺寸。

这将在新标签页中打开链接:

$(document).ready(function() {
    $('a[rel|=external]').click(function(){
        window.open(this.href);
        return false;
    });
});

如何更改以使链接在新窗口中打开?

编辑:这是我的整个JavaScript文件:

$(document).ready(function() {
    $('a[rel=external]').click(function(){
        window.open(this.href);
        return false;
    });
    $('a[rel=external-new-window]').click(function(){
        window.open(this.href, "myWindowName", "width=800, height=600");
        return false;
    });
});

HTML:

<a href="/clientarea/utils/law/id/2832" rel="external-new-window" class="accessible-link"5, odsek 2</a>

2
据我所知,您无法强制执行此操作。一些浏览器提供选项将新窗口打开为标签页 - Felix Kling
5个回答

21

你可以将尺寸传递给 window.open() 来实现这个功能:
针对更新后的问题进行编辑:请注意,[rel|= 已更改为 [rel=

$(document).ready(function() {
  $('a[rel|=external]').click(function(){
    window.open(this.href);
    return false;
  });
  $('a[rel=external-new-window]').click(function(){
    window.open(this.href, "myWindowName", "width=800, height=600");
    return false;
  });
});​

您可以在这里测试,关键是尺寸与选项卡不同。 请记住,它仍可能在选项卡中打开,因为有很多浏览器选项、扩展和插件专门用于防止弹出窗口。

此外,从用户角度来看,太多的弹出窗口会促使我追踪你并使用色拉叉刺瞎你的眼睛和/或弹出窗口并将你扔出去,所以请节制地使用它们。


现在在Firefox中它可以同时在新标签页和新窗口中打开 :P - Richard Knop
@Richard - 在我的测试页面中没有起作用...你不小心移除了 return false 了吗? - Nick Craver
不要在那个应用程序中尝试,而是在浏览器中尝试。它可能有漏洞。在Firefox中,它将打开一个选项卡和一个新窗口。 - Richard Knop
@user 观点 - 我不在意。这是一个非常内部的内网应用程序,必须确保某些链接在新窗口中打开。 - Richard Knop
1
@Richard - 对于rel="external-new-window",这两个事件处理程序都会运行,你需要使用[rel=external][rel=external-new-window]来进行精确匹配,否则后者将同时运行两个事件处理程序。 - Nick Craver
显示剩余8条评论

0

target属性设置为_blank,并且不要返回false。

$(document).ready(function() {
    $('a[rel|=external]').click(function(){
        $(this).attr('target', '_blank');
    });
});

0

使用 _blank

示例

window.open(this.href, '_blank');
onClick="window.open('http://www.functionx.com/javascript', '_blank');" >

0

window.open() 语法:

window.open(URI, window name, parameters);
  • URI: 以字符串形式表示位置
  • 窗口名称:唯一标识符,只允许使用字符[A-Z,a-z,0-9,_]
  • 参数:height, width, left, screenX, screenY等等。

示例:

window.open(this.href, "unicorn", "width=400, height=600, screenX=100");

-1
如果ff被配置为在选项卡中打开新窗口,则无法打开新窗口,而只能打开一个选项卡。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接