Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) IFrame


Eder

Pergunta

Ola,

necessito de uma ajudinha.

tenho um site com IFrame, ou seja, tenho o menu no lado ESQUERDO e quando clicko no botão abre uma pagina interna em uma Cell no lado DIREITO. até aqui tudo certinho funciona perfeito.

As paginas internas são paginas simples sem cabeçario, em fim, somente com intuíto de completar a pagina principal index.

Ai é que esta o problema, quando alguém pesquisa no google alguma palavra chave, logicamente o google mostra links correspondetes a estas palavras e neste caso mostra link de uma pagina INTERNA e o usuário clika nela e ao invés de abrir o SITE NA PAGINA INICIAL acaba abrindo a pagina INTERNA, toda simples, em fim sem nenhum acabamento.

Pergunto: existe algum código para ser inserido nas PAGINAS INTERNAS, para quando acessadas via google ou até mesmo via navegador, elas ao invés de mostrar somente a interna(simples) elas carregue a index, mostrando também a interna a qual foi chamada?

O site é em html.

Procurei na net a resposta, mas sem sucesso...

Muito Obrigado

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Em HTML puro não rola, talvez com algum esforço usando JavaScript para guadar os dados de acesso com cookie e recarregando a página mas é muito trabalho para pouca coisa e chance de não funcionar é alto ...

O ideal é fazerum site inteiro sem Frames ou Iframes apenas se fosse ultra nessesário :P

Um solução simples que chega perto do que quer é verificar se o arquivo interno (o que abre dentro do frame) está ou não sendo carregando pela janela 'maior', se não ele redireciona para a maior, coloque dentro de todas as páginas que são carregadas dentro do Frame

<script>
if (top.location == self.location) {
 top.location = "index.html";    
}
</script>

Link para o comentário
Compartilhar em outros sites

  • 0

Sk15 perfeito ele carregou...

Bom mesmo seria se carregasse a pagina MAIOR e dentro do frame a MENOR conforme foi chamado, assim quando chamado já era mostrado o que o usuario quer.

Se você tiver uma idéia, por favor.

Muito Obrigado pela sua ajuda.

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Como disse ter até tem mas não passa de uma gambiarra, fica uma droga dependendo da situação ... veja um exemplo diretamente da minha cachola não cheguei a testar mas em tese deve funcionar ...

fotos.html

<script>
if (top.location == self.location) {
 top.location = "index.html?fotos.html";    
}
</script>
index.html
<html>
<script>
function CarregaFrame() {
 var query_string = document.location.search;
 var pageshow = (query_string != "") ? query_string.replace("?", "") : "home.html";
 document.getElementById("paginas").src = pageshow;
}
</script>

<body onload="CarregaFrame()">

<iframe src="#" id="paginas"></iframe>

</body>
</html>

Editado por SK15
Link para o comentário
Compartilhar em outros sites

  • 0

caro SK15, acho que me expressei mal, pois pelo que você descreveu eu montei o exemplo aqui e não deveria ser assim.

vamos supor que o link a ser clickado seja: www.site.com.br/empresa.htm

logo eu gostaria que fosse visualizado todo o site index + a página empresa.htm dentro do Frame.

Do jeito que você cita o codigo no index.html sempre irá abrir o home.html.

Pelo que eu entendi o home.html ficou fixo no index.html.

a não ser que tenha entendi errado, :blush:

Mesmo assim valeu o esforço pela ajuda.

Grato

Link para o comentário
Compartilhar em outros sites

  • 0

É acho que você não entendeu nada :P, chegou a testar o exemplo?

A ideia é a seguinte o cara acessa a página: www.site.com.br/fotos.html

Ai dentro desse arquivo tem essa linha: top.location = "index.html?fotos.html";

No caso ele irá redirecionar a pessoa de volta ao arquivo 'index.html' só que se você observado ele tem o valor "?fotos.html" que deverá ser trocado em todas as páginas tipo "index.html?contato.html", "index.html?texto.html" ... isso serve para levar a informação para o arquivo 'index.html' dizendo em qual arquivo a pessoa tentou acessar anteriormente ...

Jé essa linha (abaixo) serve para ler o valor depois da interregoração "?foto.html", caso o valor exista ele preenche o iframe com o arquivo 'foto.html' caso ele não ache nada ou seja a pessoa acesse o arquivo 'index.html' sem o "?" com o valor ele mostra o principal que no meu caso é a "home.html"

var pageshow = (query_string != "") ? query_string.replace("?", "") : "home.html";

Básicamente a linha acima é um IF em linha é a mesma coisa que fazer assim:

if (query_string != "") {

var pageshow = query_string.replace("?", "");

} else {

var pageshow = "home.html";

}

Teste primeiro ...

Editado por SK15
Link para o comentário
Compartilhar em outros sites

  • 0

colega eu entendi perfeitamento seu raciocínio, testei o seu exemplo e funcionou, porem não consigo adapta-lo no meu site no index.htm

parte do meu codigo esta ssim já inserindo seu script entre os head´s:

<script>
function CarregaFrame() {
var query_string = document.location.search;
var pageshow = (query_string != "") ? query_string.replace("?", "") : "home.htm";
document.getElementById("paginas").src = pageshow;
}
</script>
</head>
<body text="black" link="blue" vlink="purple" alink="red" OnLoad="na_preload_img(false, 'images/home2.gif', 'images/empresa2.gif', 'images/unidades2.gif', 'images/atua2.gif', 'images/rastrea2.gif', 'images/licenca_apolice2.gif', 'images/cotacao2.gif', 'images/coleta2.gif', 'images/visita2.gif', 'images/fconosco2.gif');">
note que no inicio da body já existe um Onload, que faz o efeito no menu:
OnLoad="na_preload_img(false, 'images/home2.gif', 'images/empresa2.gif', 'images/unidades2.gif', 'images/atua2.gif', 'images/rastrea2.gif', 'images/licenca_apolice2.gif', 'images/cotacao2.gif', 'images/coleta2.gif', 'images/visita2.gif', 'images/fconosco2.gif');">[/
Como ve acima, não sei como adaptar o seu codifo ao meu já existente no index.
<body onload="CarregaFrame()">

<iframe src="#" id="paginas"></iframe>

</body>

Perdão pela falta de entendimento, mas estou tentando pode crer...

Grato

Link para o comentário
Compartilhar em outros sites

  • 0

O problema é no 'onload' ? se for é só dividir as funções com ponto e virgula ";" ... tipo

<body onload="Funcao1(); Funcao2(); Funcao3();">
No seu caso fica assim ...
<body onload="CarregaFrame(); na_preload_img(false, 'images/home2.gif', 'images/empresa2.gif', 'images/unidades2.gif', 'images/atua2.gif', 'images/rastrea2.gif', 'images/licenca_apolice2.gif', 'images/cotacao2.gif', 'images/coleta2.gif', 'images/visita2.gif', 'images/fconosco2.gif');">

Link para o comentário
Compartilhar em outros sites

  • 0

SK15, perfeito, agora fechou, era este o problema mesmo, não estava sabendo manipular seu código ao meu.

Ficou show de bola, objetivo alcançado.

Agradeço muito pela ajuda e paciência.

Um Grande Abraço e um Ótima Final de Semana :D

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...