HTML - Links dentro do iframe não funcionam

16/02/2016

Boa tarde,

Estou trabalhando em uma página HTML para sair da mesmisse do wordpress porém não sou muito bom com HTML.

Fiz ela com um index que possui um iFrame onde são abertas todas as páginas, até aí tudo bem funciona perfeitamente, porém nas páginas abertas tentro do iFrame seus links não funcionam.
***Se eu abrir a página fora do iFrame funcionam todos os links.
***Se eu abrir a página dentro do iFrame nenhum link funciona, fica como se fosse somente leitura.
Estou utilizando o Dreamweaver CS4 para desenvolver o site, se alguém puder me ajudar ficarei extremamente grato.

Se quiserem olhar upei ele aui, se abrirem as páginas em nova aba vão ver que os links funcionam.

PHP

Iago Melo

Melhor resposta

16/02/2016

Não é um boa prática usar Iframe para layouts. Ele é de grande ajuda, mas usado no escopo correto.

Se quer mesmo criar sites mais robustos pesquise e tente aprender sobre tabless, layout responsivo, layout dinâmico e layout fluido.

Jothaz

Responder Citar

Outras Respostas

19/02/2016

Marcelo Pastore

Realmente não é uma boa, leia um pouco sobre esse assunto.

[url]http://www.maujor.com/blog/2006/12/21/inserindo-pagina-html/[/url]
Responder Citar

19/02/2016

Gabriela Monte

Tem como ter essa funcionalidade sem o uso do iframes? Como?
Responder Citar

20/02/2016

Jothaz

É complicado de explicar sem mostrar exemplos ou criar um post monstro.

Respondendo a sua pergunta o indicado é criar um layout básico usando div´s com topo, conteúdo e rodapé e carregar as páginas no conteúdo. Usando um linguagem back-end é só usar "includes", masterpage ou partial, dependendo da tecnologia usada, que permite incluir as partes do layout (top e rodapé) de forma dinâmica.

Se for usar somente HTML acaba que você terá de repetir a parde do tipo e rodapé em todas as páginas que é trabalhoso e mata na hora de dar manutenção, pois se alterar qualquer coisa tem de alterar em todas a páginas.

Usando somente HTML fica dicidil utilizar os "includes", então para contorna usa-se das gambiarras frameset e iframe. Assim pode-se simular o include de partes de páginas só que frameset foi descontinuada (uma pesquisa no Google vai explicar o porque) e Iframe não foi criado para layouts e sim para ser usada em cados específicos.

No HTML5 exist a tag:

<object  nome = "foo"  tipo = "text / html"  dados = "foo.inc" />


mas usá-la para criar layout vai contra a especificação do W3C e não é crossbrowser.

Em servidores que utilizam SSI (server side includes) você pode usar:

<!--#include file="same_path_file.html" -->


mas é um solução instável que não é crossbrowser. Tudo isto são apenas gambiarras para contornar a incapacidade de utilizar um linguagem back-end.

Quer mesmo ser profissional e criar páginas robustas e funcionais, saia da idade das trevas e aprenda um linguagem back-end. Esta estória de programador fornt-end não leve ninguém a lugar nenhum. HTML é algo trivial destina-se apenas a ser um sistema para interligar documentos, não é uma linguagem de programação é um linguagem de marcação.

Considero HTML tão simples que se você se dedicar uma semana ao estudo consegue aprender tudo o que é preciso. Agora se quer mesmo desenvolver se dedique a uma linguagem back-end ai sim você terá mais ferramentas para dar forma as sua criatividade.
Responder Citar

20/02/2016

Gabriela Monte

Não estava cogitando o uso de uma linguagem back-end, bem lembrando, vou atrás de saber desses detalhes, obrigada.
Responder Citar

21/02/2016

Jothaz

Grabriela,

Dê uma olhada neste vídeo que fiz com um exemplo prático para responder este post, acho que vai ficar mais fácil de entender a questão.

Espero que com um exemplo prático suas dúvidas sejam sanadas.

Lá também mostro uma forma simples de criar-se um lay out usando somente HTML.

Mas continuo com o mesmo conselho aprenda uma linguagem back-end.
Responder Citar

21/02/2016

Cleyton Caetano

Ao invés do IFRAME não seria mais útil usar o include do PHP?
Responder Citar

21/02/2016

Gabriela Monte

Deve ajudar sim Jothaz, muito obrigada e peço desculpas por "entrar" no post.
Responder Citar