• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

MGP

[Resolvido] Leighbox

10 mensagens neste tópico

Andava a procura de um script que me permitisse (ou criasse a "ilusão"), de certa maneira, desabilitar o acesso a uma página enquanto esta estivesse em manutenção.

Encontrei este pequeno script, Leighbox, baseado no Lightbox que faz exactamente o que preciso (de certa maneira), com o aspecto que queria (aquele grayed overlay, como no Vista quando o chato do UAC pops up :D) mas que infelizmente, devido ao pouco conhecimento que tenho em HTML/JavaScript, não consigo por a funcionar automaticamente quando a pagina faz load.

A maneira, segundo o guia, de o activar é através de um link:

<a href="#lightbox1" rel="lightbox1" class="lbOn">Leightbox 1</a>

onde depois ele irá depois buscar a informação a um div, segundo o id:

<div id="lightbox1" class="leightbox">
	<a href="#" class="lbAction" rel="deactivate">Close</a>
</div>

Será que alguém me poderia ajudar arranjar uma maneira de por isto a iniciar automaticamente após o load da página? Ou mesmo indicar-me algo (outro script), ou um site onde possa encontrar informação para o que pretendo?

Desde já, agradeço qualquer ajuda que me possam disponibilizar.  :(

MGP

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Colocaste isto no teu head:

<script type="text/javascript" src="scripts/prototype.js"></script>

<script type="text/javascript" src="scripts/lightbox.js"></script>

E com os respectivos ficheiros na pasta scripts a seguir a pasta do main file?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, claro.. isso eu fiz, e funciona perfeitamente se eu clickar no link, tal como no exemplo que lá vem (óbvio). Agora, o que eu precisava era que isso fosse feito automaticamente.. ou seja, que não fosse preciso clickar em nenhum link..

Eu é que não sei outra maneira de por aquilo a funcionar, ou de chamar a função, sem ser através da tag A..  :)  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então não sei, já andei à procura e não encontrei nada quanto a isso. Pode ser que alguém saiba, é uma questão de esperar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não experimentei, mas deve ser qq coisa assim deste género

<body onload="activa()">

.....

<a id="activa_logo" href="#lightbox1" rel="lightbox1" class="lbOn">Leightbox 1</a>

...

<script type="text/javascript">
function activa(){ document.getElementById("activa_logo").onclick() }
</script>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@ Sven: Obrigado pela tentativa de ajuda, mas não funcionou a tua ideia..  :)

Felizmente já consegui encontrar a solução. Deixo-a aqui para alguém que possa estar interessado:

- abrir o ficheiro lightbox.js;

- localizar a linha:

initialize: function(ctrl) {

- na linha a seguir, colar o seguinte código:

if ($('lbOnAuto')) {
this.content = 'teste'; /* mesmo ID abaixo colocado no DIV */
if (browser == 'Internet Explorer'){
	this.getScroll();
	this.prepareIE('100%', 'hidden');
	this.setScroll(0,0);
	this.hideSelects('hidden');
}
this.displayLightbox("block");
}

- para a janela aparecer automaticamente, inserir o seguinte código na página:

<input class="lbOn" id="lbOnAuto" type="hidden"/>
<div id="teste" class="leightbox">
	...
</div>

Para já, funciona perfeitamente nos vários browsers que experimentei, à excepção do IE7 que teima em aparecer a barra para permitir a execução de scripts..  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não experimentei, mas deve ser qq coisa assim deste género

<body onload="activa()">

.....

<a id="activa_logo" href="#lightbox1" rel="lightbox1" class="lbOn">Leightbox 1</a>

...

<script type="text/javascript">
function activa(){ document.getElementById("activa_logo").onclick() }
</script>

Ois

Isto nunca ia funcionar, onclick() eh um evento devias tar a pensar no click() mas mesmo este nao existe para

o objecto Anchor.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Claro que funciona,

tens o evento onClick e a função onclick que te despoleta o evento

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não experimentei, mas deve ser qq coisa assim deste género

<body onload="activa()">

.....

<a id="activa_logo" href="#lightbox1" rel="lightbox1" class="lbOn">Leightbox 1</a>

...

<script type="text/javascript">
function activa(){ document.getElementById("activa_logo").onclick() }
</script>

Ois

Mas tu nao tas a atribuir funçao nenhuma ao event onclick().

Devias tar a pensar em algo assim :

function activa(){ document.getElementById("activa_logo").click() }

Mas como ja disse o objecto Anchor nao tem a funçao click().

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva,

Desculpa NGS_One mas parece-me que estás a milhas de entendero que o código pretendia fazer

Basicamente a ideia é despoletar o evento onclick do link no load da pagina para que o código do Leighbox o intercepte e faça o que tem a fazer,  ou seja simula o tal click no link que o MGP dizia que so assim conseguir activar a Leighbox

Mas o Leighbox não o intercepta porque não implementa nenhum listner para isso em vez disso parece-me que apenas se baseia no url par activar ou desactivar a lightbox

@MGP

agora que olhei melhor para isto, acho que bastava chamares a pagina com #lightbox1 (o href do link) no url para isso abrir automaticamente

se quiseres tentar e dizer se resultou agradecia

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora