Jump to content

[Resolvido] Leighbox


MGP

Recommended Posts

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 😄 ) 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

Link to comment
Share on other 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?

Our lives begin to end the day we become silent about things that matter - Martin Luther King

Link to comment
Share on other 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..  🙂   🙂

Link to comment
Share on other 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>
Link to comment
Share on other 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:

Link to comment
Share on other 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.

Se a vida te voltar as costas aproveita e apalpa-lhe o cu.

Link to comment
Share on other 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().

Se a vida te voltar as costas aproveita e apalpa-lhe o cu.

Link to comment
Share on other 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

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
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. 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.