2015-06-14 112 views
0

我想刷新新打开的窗口,我有一个链接,当我点击它时,我打开一个新窗口,所以我想刷新和编辑新的窗口URL 3秒后。Jquery刷新新打开的窗口

$('.link').on('click', function(e) { 
    e.preventDefault(); 
    window.open('/page/?q=param', '_blank'); 
    setTimeout(function(){ 
    window.location.href = window.location.href.replace(/[\?#].*|$/, "/?q=new_value"); 
}, 3000); 
}); 

此代码正在刷新原始页面而不是新页面。所以我想要一种方式来刷新新的。

回答

0

存储新的窗口引用和访问位置属性。

var newWindow = window.open('/page/?q=param', '_blank');

你可以做这样的事情

$('.link').on('click', function(e) { 
    e.preventDefault(); 
    var newWindow = window.open('/page/?q=param', '_blank'); 
    setTimeout(function() { 
    newWindow.location.href = newWindow.location.href.replace(/[\?#].*|$/, "/?q=new_value"); 
    }, 0); 
}); 
+1

请考虑downvote之前添加注释 – Dhiraj

+0

非常感谢帮我 – ler

1

尝试

// set `popup` as reference to new `window` 
var popup = window.open("/page/?q=param", "popup"); 

setTimeout(function() { 
    // set `location.href` of `popup` 
    popup.document.write("<script>location.href = location.href.replace(/[\?#].*|$/, '/?q=new_value');</script>") 
}, 3000) 
1

您的代码将刷新原来的窗口,当然。
你要更改代码,以便将分配一个变量:

w = window.open('/page/?q=param', '_blank'); 

的“window.location.href”将刷新当前窗口,而不是另外一个, 然后改变它的位置在的setTimeout :

w.location.href = window.location.href.replace(/[\?#].*|$/, "/?q=new_value");