Jump to content

Window Focus


Skywriter
 Share

Recommended Posts

Pessoal, precisava aqui de uma ajuda em PHP ou Javascript.

Acontece o seguinte: tenho uma página com vários links, em que cada link vai abrir num novo separador/janela.

Até aqui tudo bem. O que acontece é que os browsers (a não ser que configurados de outra maneira) passam logo o foco para a janela nova.

O que eu pretendia era algum pedaço de código que me permitisse abrir os links num novo separador mas mantivesse o foco na minha janela actual.

Sim, eu sei que bastaria simplesmente configurar o browser para isso, mas quero que isto aconteça só nesta página em especifico.

Any ideas?

Já experimentei com o window.focus mas não consegui nada, ou então estou a fazer mal.

Qualquer ajuda será bem-vinda. ;)

Link to comment
Share on other sites

tenta

window.open(url); self.focus();

nunca foi coisa que precisasse de fazer..

ie 9: popup bloqueado

chrome 11: popup bloqueado

opera 11: popup bloqueado

Edited by hda
Link to comment
Share on other sites

tenta

window.open(url); self.focus();
nunca foi coisa que precisasse de fazer.. ie 9: popup bloqueado chrome 11: popup bloqueado opera 11: popup bloqueado
Não dá... :(
Na janela que é aberta, tenta colocar
opener.focus();

Os links são para sites externos.

Link to comment
Share on other sites

tenta

window.open(url); self.focus();

nunca foi coisa que precisasse de fazer..

ie 9: popup bloqueado

chrome 11: popup bloqueado

opera 11: popup bloqueado

Não dá... :(

não dá como? é bloqueado pelo browser, certo?

Link to comment
Share on other sites

camurso, ele já disse que a janela "filha" não é dele.

Imagina que ele quer ter um link no site dele que abre o Google num tab novo, mas quer que o tab dele se mantenha como activo.

<!DOCTYPE html>

<html>

<head>

	<title>Window.Focus</title>

<body>

	<a href="#" class="link" onclick="tabOpen()">Google</a>


	<script type="text/javascript">

		//<![CDATA[

		function tabOpen() {

			window.open('http://www.google.com');

			window.focus();

			return false;

		}

		//]]>

	</script>

</body>

</html>

Isto funciona-me bem no Firefox e no Chrome. No IE9 não...

Link to comment
Share on other sites

O que tu queres não é possível da forma que tu provavelmente gostavas, se há alguma forma de dar à volta as coisas, não sei.

O Javascript corre no lado do cliente relativamente à tab aberta que para todos os efeitos é uma "janela individual". Não podes aceder à "janela" A através do JS na "janela" B. Isso apresentaria sérios riscos de segurança para não falar que seria um comportamento que os utilizadores não estão à espera. Eu ficaria extremamente chateado se quisesse abrir explicitamente uma nova tab/janela no foreground e tu forçasses a mesma a abrir no background por mim, não faz sentido. Claro que se for uma cena só para teu uso, tudo bem, mas os browsers são para o povo lol.

Para isso ser possível, cada browser teria de implementar funções próprias para gerir as tabs dessa forma e não me parece que isso estará nos planos de alguém no futuro mais próximo pelas razões supra mencionadas (e provavelmente outras).

Active tabs (tabs with focus) cannot be affected by scripts that run in inactive or background tabs.

Fonte: http://msdn.microsof...y/ms537636.aspx

O exemplo do Mini0n, se realmente funciona, não devia. Testei deste lado no Firefox 4 e não funcionou, a tab do Google fica sempre activa.

Edited by Nazgulled
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.