window.open没有在同一个窗口中再次打开

时间:2015-07-07 19:04:41

标签: javascript jquery

每次重新加载特定页面时,都会打开一个弹出窗口,向Google搜索第二个内容。问题是它会在新窗口中打开,而不是在原始弹出窗口内打开。

var td_name = $("td:eq(1)");
var td_text = td_name.text();
window.open("http://www.google.com/search?q="+td_text+"", "myWindow", '_blank');

3 个答案:

答案 0 :(得分:2)

浏览器安全模型暂时阻止了这一点(可以理解)。如果"重新加载"它将起作用。是用JS完成的,而不是完整的浏览器刷新。

有关使用窗口引用的变通方法,请参阅此相关答案:

  

没有。如果没有对窗口的引用,则无法再次找到它   姓名或其他。没有窗户的集合。

     

更新:以下是您自己可以做的事情:

var windows = {};
function openWindow(url, name, features) {
    windows[name] = window.open(url, name, features);
    return windows[name];
}
     

现在,openWindow将始终打开窗口,如果是窗口   已存在,它将在该窗口中加载给定的URL并返回一个   引用那个窗口。现在您还可以实现findWindow

function findWindow(name) {
    return windows[name];
}
     

如果窗口存在,将返回窗口,或undefined

     

您还应该拥有closeWindow,因此您不会继续引用   你自己打开的窗户:

function closeWindow(name) {
    var window = windows[name];
    if(window) {
        window.close();
        delete windows[name];
    }
}
     
    

如果不可能,那么给出Windows名称的重点是什么?

  
     

浏览器在内部使用该名称来管理窗口。如果你   使用相同名称拨打window.open,它不会打开新窗口但是   而是将URL加载到先前打开的窗口中。有一个   还有更多内容,来自MDN window.open()

     
    

如果已存在名为strWindowName的窗口,则strUrl将加载到现有窗口中。在这种情况下的返回值     方法是现有窗口,并忽略strWindowFeatures。     为strUrl提供空字符串是获取对a的引用的一种方法     按名称打开窗口而不更改窗口的位置。至     在每次调用window.open()时打开一个新窗口,使用特殊的     strWindowName的值为_blank。

  
     

消息来源: https://stackoverflow.com/a/9364899

答案 1 :(得分:0)

试试这个

       function openWindow(td_text)
                {

                   var strurl ="http://www.google.com/search?q="+td_text;               

 window.open(strurl,"mywindow","menubar=0,resizable=1,scrollbars=1,width=550,height=200");
                }
        var td_name = $("td:eq(1)");
        var td_text = td_name.text();
        openWindow(td_text);

答案 2 :(得分:0)

您可以使用

window.open(url,"_self");

然后它将在同一窗口中打开。