如何打开新窗口/选项卡但关注开启窗口?

时间:2014-10-30 15:16:06

标签: javascript jquery new-window

我想模仿ctrl +点击互动,在所有浏览器的后台标签中打开一个链接。

略有不同的是,该链接基于正在检查的复选框。

以下是JSbin +该问题的代码供将来参考:

JSBin链接

http://jsbin.com/hisozawibu/2/

代码

<input class="ad-check" data-url="http://www.google.com" type="checkbox" id="test" name="test" />
<label for="test">Test</label>

$('body').on('click', '.ad-check' ,function(){
    var self = $(this);
    window.open(self.attr('data-url'), "_blank");
    window.blur();
});

我看过图书馆,但似乎没必要这么简单。

当您搜索酒店并选择提供商时,可以在Kayak上看到我想要实现的技术。

http://www.kayak.co.uk/hotels

2 个答案:

答案 0 :(得分:0)

这就是你需要的。

http://jsfiddle.net/5fz2u6Lq/

$('body').on('click', '.ad-check' ,function(){
    var self = $(this);
    var win = window.open(self.attr('data-url'), "_blank", 'modal=yes');
    win.blur();
});

修改:

如果你也关注旧的那个怎么办。

http://jsfiddle.net/5fz2u6Lq/1/

$('body').on('click', '.ad-check' ,function(){
    var self = $(this);
    var current = window;
    var win = window.open(self.attr('data-url'), "_blank", "modal=yes");
    win.blur();
   current.focus();

});

答案 1 :(得分:0)

注意,使用此http://jsfiddle.net/azproduction/LRc7Z/模式

尝试

HTML

<input class="ad-check" data-url="http://www.google.com" type="checkbox" id="test" name="test" />
<label for="test">Test</label>
<a id="ad-check-link" href=""></a>

JS

var simulateClick = function (ctrl, shift, isMiddle) {
    var evt = document.createEvent('MouseEvents');
    evt.initMouseEvent('click'
                       , true, true, window
                       , 0, 0, 0, 0, 0, ctrl
                       , false, shift, false
                       , isMiddle ? 1 : 0, null );
    document.getElementById('ad-check-link').dispatchEvent(evt);
};
// substituted `.one()` for `.on()` to prevent calling action
// if clicked second time, after being initially checked by first click
$('body').one('click', '.ad-check' ,function(){
    var self = $(this);
    var link = $("a#ad-check-link")
               .prop("href", self.attr('data-url'))[0];

    link.onclick = simulateClick(true, false, false);
});

jsfiddle http://jsfiddle.net/guest271314/awjvbLt5/1/