Eu tenho uma caixa de seleção que chama window.open(url)
quando um item é selecionado. O Firefox abrirá a página em uma nova guia por padrão. No entanto, gostaria que a página fosse aberta em uma nova janela, não em uma nova guia.
Como posso fazer isso?
javascript
firefox
Adão
fonte
fonte
Respostas:
Atribua à janela um parâmetro 'specs' com largura / altura. Veja aqui todas as opções possíveis.
Quando você especifica uma largura / altura, ela será aberta em uma nova janela em vez de em uma guia.
fonte
Você não precisa usar a altura, apenas certifique-se de usar
_blank
. Sem ela, ela será aberta em uma nova guia.Para uma janela vazia:
Para um URL específico:
fonte
location=0
é necessário quando o JS é chamado de um botão ou elemento âncora.location=0
os parâmetros. Eu também sugeriria nomear a janela em vez de usar o_blank
destino, para que a mesma janela seja usada novamente se o usuário clicar várias vezes no elemento que abre o pop-up e encadeando-ofocus()
para que um pop-up aberto já tenha o foco:window.open('http://stackoverflow.com', 'Stack_Overflow','location=0').focus();
Posso estar errado, mas, pelo que entendi, isso é controlado pelas preferências do navegador do usuário e não acredito que isso possa ser substituído.
fonte
Tentar:
Eu tenho algum código que faz o que você diz, mas há muitos parâmetros nele. Eu acho que esse é o mínimo, deixe-me saber se não funcionar, vou postar o resto.
fonte
OK, depois de fazer muitos testes, aqui está minha conclusão:
Quando você executa:
ou o que você colocar no campo de destino, isso não mudará nada: a nova página será aberta em uma nova guia (portanto, depende da preferência do usuário)
Se você deseja que a página seja aberta em uma nova janela "real", você deve colocar um parâmetro extra. Gostar:
Após o teste, parece que o parâmetro extra que você usa não importa: esse não é o fato de você colocar "esse parâmetro" ou "esse outro" que cria a nova "janela real", mas o fato de haver um novo parâmetro (s )
Mas algo está confuso e pode explicar muitas respostas erradas:
Este:
E isto:
NÃO dará o mesmo resultado.
No primeiro caso, quando você abre uma página sem parâmetro extra, ela será aberta em uma nova guia . E, nesse caso, a segunda chamada também será aberta nesta guia por causa do nome que você der.
No segundo caso, como sua primeira chamada é feita com um parâmetro extra, a página será aberta em uma nova " janela real ". E, nesse caso, mesmo que a segunda chamada seja feita sem o parâmetro extra, ela também será aberta neste novo " janela real " ... mas na mesma guia!
Isso significa que a primeira chamada é importante, pois decidiu onde colocar a página.
fonte
Você não deveria precisar. Permita que o usuário tenha as preferências que desejar.
O Firefox faz isso por padrão porque abrir uma página em uma nova janela é irritante e uma página nunca deve ser permitida, se não for o que o usuário deseja. (O Firefox permite abrir abas em uma nova janela, se você a definir dessa maneira).
fonte
Você pode tentar a seguinte função:
O código HTML para execução:
fonte
popup.location = URL;
? Awindow.open()
chamada deve abri-la na URL apropriada e, no seu exemplo de código,URL
não está definida, portanto, ela retornará ao objeto de URL experimental (e não oferece suporte amplo) . Enquanto usá-lo para isso é discutível, estou curioso para saber quais são as motivações para seu uso aqui.A chave são os parâmetros:
Se você fornecer os Parâmetros [Height = "", Width = ""], ele será aberto em novas janelas.
Se você NÃO fornecer parâmetros, ele será aberto em uma nova guia.
Testado no Chrome e Firefox
fonte
Curiosamente, descobri que se você passar em um local vazio string (em oposição a uma string nula ou uma lista de propriedades) para o terceiro atributo de window.open, ela abriria em uma nova guia para Chrome, Firefox e IE. Se ausente, o comportamento era diferente.
Então, esta é minha nova ligação:
fonte
tente esse método .....
fonte
Para mim, a solução era ter
no terceiro parâmetro. Testado no FF / Chrome mais recente e em uma versão antiga do IE11
A chamada de método completo que uso está abaixo (como eu gosto de usar uma largura variável):
fonte
Eu apenas tentei isso com o IE (11) e o Chrome (54.0.2794.1 canary SyzyASan):
... e abriu em uma nova janela.
O que significa que Clint pachl acertou quando disse que fornecer qualquer parâmetro faria com que a nova janela fosse aberta.
- e aparentemente não precisa ser um parâmetro legítimo!
(YMMV - como eu disse, eu só testei em dois lugares ... e a próxima atualização pode invalidar os resultados, de qualquer maneira)
ETA: Acabei de notar, porém - no IE, a janela não tem decoração.
fonte
Respondeu aqui . Mas publicá-lo novamente para referência.
window.open()
não será aberto em uma nova guia se não estiver acontecendo no evento de clique real. No exemplo dado, o URL está sendo aberto no evento de clique real. Isso funcionará desde que o usuário tenha as configurações apropriadas no navegador.Da mesma forma, se você estiver tentando fazer uma chamada ajax na função click e quiser abrir uma janela com sucesso, verifique se está fazendo a chamada ajax com o
async : false
conjunto de opções.fonte
Eu acho que não é problema de propriedades de destino html, mas você desmarcou a opção "abrir janelas do nw em uma nova guia em vez" na opção "guia" no menu "opções" do firefox. verifique e tente novamente.
fonte
Eu tive essa mesma pergunta, mas encontrei uma solução relativamente simples para ela.
Em JavaScript, eu estava verificando para
window.opener !=null;
determinar se a janela era pop-up. Se você estiver usando algum código de detecção semelhante para determinar se a janela em que o site está sendo renderizado é uma janela pop-up, é possível "desabilitá-lo" facilmente quando você deseja abrir uma "nova" janela usando o JavaScript da nova janela.Basta colocar no topo da página que você deseja sempre ser uma "nova" janela.
Eu uso isso na página de logon do meu site para que os usuários não obtenham comportamento pop-up se usarem uma janela pop-up para navegar até o meu site.
Você pode até criar uma página de redirecionamento simples que faça isso e depois mover para o URL que você forneceu. Algo como,
JavaScript na página principal:
E então, usando um pouco de javascript a partir daqui, você pode obter o URL e redirecionar para ele.
JavaScript na página de redirecionamento:
fonte