Abrir URL em uma nova janela com JavaScript

130

Estou criando um "botão de compartilhamento" para compartilhar a página atual. Gostaria de pegar o URL da página atual e abri-lo em uma nova janela. Eu tenho a parte da URL atual funcionando, mas não consigo fazer a próxima parte funcionar.

Estou lutando com a sintaxe. Gostaria de especificar o novo tamanho da janela para width=520, height=570.

Algo como:

<a target="_blank"
   href="https://www.linkedin.com/cws/share?mini=true&amp;url=[sub]" 
   onclick="this.href = this.href.replace('[sub]',window.location)">
    LinkedIn
</a>

Alguma ideia?

Mark Mitchell
fonte

Respostas:

218

Use window.open():

<a onclick="window.open(document.URL, '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');">
  Share Page
</a>

Isso criará um link intitulado Share Pageque abre o URL atual em uma nova janela com uma altura de 570 e largura de 520.

citruspi
fonte
como a altura da janela conjunto e largura para zero, se eu definir a zero ele está mostrando tela cheia
Akshatha Srinivas
como a abrimos como uma janela normal em vez de janela pop-up? porque incapaz de abrir uma nova guia
Ashok kumar Ganesan
@AkshathaSrinivas a altura mínima é 100
Oscar Acevedo
56

Basta usar a window.open()função? O terceiro parâmetro permite especificar o tamanho da janela.

Exemplo

var strWindowFeatures = "location=yes,height=570,width=520,scrollbars=yes,status=yes";
var URL = "https://www.linkedin.com/cws/share?mini=true&amp;url=" + location.href;
var win = window.open(URL, "_blank", strWindowFeatures);
Shiplu Mokaddim
fonte
shiplu.mokadd.im Isso parece ser o que eu preciso, mas não tenho certeza para onde vai.
Mark Mitchell
2
@ MarkMitchell Se você não se importa com os padrões de codificação - no onclickatributo Uma opção um pouco melhor é criar uma função que você chama a partir do onclick. Usando getElementByIde addEventListenerestá mais limpo ainda. Usar o jQuery para obter uma sintaxe mais curta (e alguns outros recursos + toneladas de plugins) também é muito popular.
John Dvorak
Como é esse o 4º parâmetro? Parece o terceiro para mim. Estou esquecendo de algo?
CoderDennis
@CoderDennis Nice catch. Corrigido.
Shiplu Mokaddim
oi como posso acionar o evento de fechamento da janela?
Dilakshan Sooriyanathan
2

Não confunda, se você não fornecer nenhum strWindowFeatures, ele será aberto em uma nova guia.

window.open('https://play.google.com/store/apps/details?id=com.drishya');
Ankit Kumar Rajpoot
fonte