Jump to content

Click dentro de iframe produzir efeitos no exterior


Recommended Posts

Posted (edited)

Boas!

Tenho uma página com hiperligações e quando carrego nessas hiperligações deve ser lido um ficheiro meuficheiro.js e executada a hiperligação normal.

Até aqui nada de especial e funciona bem com o seguinte código (script dentro de header e hiperligação no body).

 $(window).load(function()
 {
  $("a.link").click(function()
  {
   $.getScript("js/meuficheiro.js");
  });
 });

<a class="link" href="pagina.php" target="FRAME1" title=""><img src="images.png" alt=""/></a>

Como se pode perceber a pagina.php vai abrir dentro do meu index.php num iframe.

De seguida a página.php tem mais links para outras páginas e eu gostava que carregando nesses links fosse executado o meuficheiro.js, mas simplesmente nada acontece pq $(window).load(function() não vai "ler" dentro do meu iframe.

Resumidamente, qualquer link no index funciona bem, já os links dentro do iframe pura e simplesmente não acontece nada.

Alguém sabe como dar a volta a isto?

Edited by brunoais
geshi
Posted

O site já tem um tempo e o iframe continua a ser válido em HTML5, por isso não vejo necessidade de o retirar.

A ideia é ter uma página principal estática e depois o iframe com vários conteúdos que se podem alterar, por isso uso o iframe.

Posted (edited)

é assim... valido para esse efeito, nao me parece sinceramente!

iframes sao ainda utilizados é para ads, widgets e coisas do genero... nao para navegar

e ja que dizes que tás a usar a doctype HTML5, começa por meter tudo como deve ser 😉

se nao usas uma linguagem de servidor, podes por exemplo usar isto: http://tableless.com.br/jekyll-servindo-sites-estaticos/#.UoIRauJRjDs

(edit: esquece essa opção, precisas de ruby, que é uma linguagem de servidor)

assim evita-te repetires o layout... mas se for so html, tambem nao vejo mal nenhum... ou podes simplesmente fazer um .load com o jquery, e ele carrega via ajax as paginas... alias, o ideal seria isso:

terias digamos a header com o menu, e depois a footer, e depois o conteudo a carregar via ajax, assim a pagina inicial vai ser sempre estatica 😉

sei que se calhar es iniciante e talves seja demais, mas fazer as coisas bem exigem empenho (: alem disso aproveitas e aprendes algo novo!

Edited by I-NOZex

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Posted

Eu tentei fazer o load das páginas como dizes, abrindo as paginas secundárias numa div do index, mas o mal é que certas páginas não abriam corretamente.

Por exemplo a página xpto.php tinha um script e o que eu obtinha com o load era simplesmente o document.write(blablabla) e o que era suposto aparecer não aparecia.

Um dos problemas era se a página lida pelo ajax fosse assim uma página php ou html com isto la dentro:

<script type="text/javascript" src="http://www.ilive.to/embed/56390&width=640&height=480&autoplay=true"></script>

Por causa disto e por matar a cabeça sem saber o que fazer é que preferi deixar ficar o iframe.

Posted

entao ja que usas php, faz assim

a hea, inciio do boddy e a parte do menu, mete num ficheiro php, por exemplo head.php

depois a parte de footer e de fechar tags body noutro ficheiro, por exemplo footer.php

e depois os ficheiros de conteudo fica tipo assim

faz de conta, ficheiro index.php:

<?php include('head.php'); ?>
<div class="conteudo">
   <p>conteudo</>
</div>
<?php include('footer.php'); ?>

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

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.