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

(Resolvido) Refresh


MTavares

Pergunta

Prezados colegas,

o que quero é simples para quem é fera em javascript... eu tenho um sistema em PHP de thumbail, sendo que está dividido em frames.. inferior (onde constam as imagens em miniatura) e superior (onde irão aparecer a imagem em tamanho real)... até aqui tdo bem, mas no Internet Explorer, ao clicar sobre uma imagem menor a imagem maior só aumenta quando se dá um refresh, já no Firefox esse problema não acontece... tem algum código em javascritp que atualize automaticamente sem precisar do refresh do HTML (aquela coisa que fica piscando)..rssss...

abraços

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

beleza Jonathan,

tenho uma página com frames.. sendo o primeiro frame (inferior) trás as imagens em miniatura do banco, do qual quando se clica em uma dessas imagens, ela aparece no frame superior em tamanho maior.... só que a imagem só fica maior, quando se atualiza o frame superior e não automaticamente como acontece o Firefox... eu até poderia postar o código, mas o que consta no frame superior são apenas o PHP que mostra a imagem, do qual é nessa página que quero um refresh (sem ser em HTML que fica piscando)...mas se precisar mesmo assim é só falar que posto aqui pra vocês..

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Entendi...

Você pode tentar fazer assim:

var x=parent.frames["frame_superior"].document.getElementById("imagem")
x.src=x.src
Acho que dessa forma ele atualizaria só a imagem, mas você teria que impedir que ela fosse guardade em cache Se não for possível impedir que fique em cache, você pode gerar um número aleatório e passar por parâmetro, já que teoricamente a url é diferente para o navegador
x.src=x.src+"?a="+Math.random()

Link para o comentário
Compartilhar em outros sites

  • 0

hummm...quase entendi..rsssssssss.. é que sou leigo em javascript.. nesse caso eu colocaria esse codigo dentro do frame que preciso dar o refresh certo?... e sem querer abusar.. .como eu faria esse codigo exatamente...

abraços e obrigado pela força...

Link para o comentário
Compartilhar em outros sites

  • 0

Supondo que o atributo name do frame superior seja frame_superior e que o id do elemento que mostra a imagem seja imagem, você poderia utilizar o seguinte código no outro frame para atualizar a imagem:

var x=parent.frames["frame_superior"].document.getElementById("imagem")
x.src=x.src+"?a=b"

Link para o comentário
Compartilhar em outros sites

  • 0

beleza..

entendi....eu coloquei no frame inferior o código e ficou dessa forma:

<script language="javascript">
var x = parent.frames["ver_imagem"].document.getElementById("imagem");
x.src=x.src+"?a="+Math.random();
</script>
"ver_imagem" é o nome do frame superior onde quero que faça o refresh.. e "imagem" é o nome do id da imagem.. só que aparece o seguinte erro: "x é nulo ou não é um objeto" .... Abraços.... desculpe..coloquei assim:
<script language="javascript">
var x=parent.frames["ver_imagem"].document.getElementById("imagem")
x.src=x.src+"?a=b"
</script>

mas aparece o erro:

x é nulo ou não é objeto

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

beleza... o codigo do que chama os frames é:

<frameset rows="*,142" frameborder="NO" border="0" framespacing="0">
  <frame src="ver_imagem.php" name="ver_imagem" title="mainFrame">
  <frame src="ver_lista.php?id=<?=$_REQUEST["id"];?>&<?=$pagina;?>" name="bottomFrame" scrolling="NO" noresize title="bottomFrame">
</frameset>
e o frame inferior (que lista as miniaturas):
// aqui eu coloquei seu código

<script language="javascript">
var x=parent.frames["ver_imagem"].document.getElementById("imagem")
x.src=x.src+"?a=b"
</script>

<body bgcolor="#EAEAEA">

...

    <table border="0" cellpadding="0" cellspacing="3" width="100%">
<tr>
  <td><b><?=$total;?> (<font color="#FF0000"><?=$conta;?></font>)</b></td>
  </tr>
  <tr>
  <td>
<div id="Layer1">
    <table border="0" cellpadding="0" cellspacing="3" width="10%">
<tr>
<?php
.....

//$i = 0;
  while($mt = mysql_fetch_object($sql)){
//if (($i % 2) == 0) { print '</tr><tr>'; }
$imagem = "imagens/$mt->imb_imagens";
//$imagem = "imagens/$mt->imb_imagens";

$tamanho_fixo = "S";   
$largura_fixa = 133;   
$altura_fixa = 99;  
$percentual = 40; 

if($tamanho_fixo=="N" && ($percentual<1 || $percentual>100)){
    echo "O percentual deve ser um número entre 1 e 100!";
    exit;
}

$extensao = pathinfo($mt->imb_imagens); 
$ver_ext = $extensao['extension'];


$ext = $ver_ext;

if($ext == "jpg" || $ext == "jpeg"){  
$arquivo_miniatura = explode('.', $imagem);
$arquivo_miniatura = $arquivo_miniatura[0]."_mini.jpg";
$img_origem = ImageCreateFromJPEG($imagem);
$origem_x = ImagesX($img_origem);
$origem_y = ImagesY($img_origem);
  }
if($ext == "gif"){  
$arquivo_miniatura = explode('.', $imagem);
$arquivo_miniatura = $arquivo_miniatura[0]."_mini.gif";
$img_origem = ImageCreateFromGif($imagem);
$origem_x = ImagesX($img_origem);
$origem_y = ImagesY($img_origem);
  }
if($tamanho_fixo=="S"){
    $x = $largura_fixa;
    $y = $altura_fixa;
}else{
    $x = intval ($origem_x * $percentual/100);
    $y = intval ($origem_y * $percentual/100);
}

$img_final = ImageCreateTrueColor($x,$y);

ImageCopyResampled($img_final, $img_origem, 0, 0, 0, 0, $x+1, $y+1, $origem_x , $origem_y);

if($ext == "jpg" || $ext == "jpeg"){
ImageJPEG($img_final, $arquivo_miniatura);
}

if($ext == "gif"){ 
Imagegif($img_final, $arquivo_miniatura);
}
ImageDestroy($img_origem);
ImageDestroy($img_final);  

    $ver_imagem = "<img src='$arquivo_miniatura' style='border:1px solid #000000'>";

?>
<td><a href="ver_imagem.php?id=<?=$_REQUEST["id"];?>&pagina=<?=$_REQUEST["pagina"];?>&ver_imagem=s&id_imagem=<?=$mt->imb_Nid_img;?>" target="ver_imagem"><?=$ver_imagem;?></a></td>

<?php // $i++; 
} ?>
    </tr>
</table>
</div>

</td>
    </tr>
</table>
e o frame superior onde tem que dar o refresh:
//$id = $mt_amplia->imb_Nid_img;
//if (($i % 2) == 0) { print '</tr><tr>'; }
$imagemm = "imagens/$mt_amplia->imb_imagens";
//$imagemm = "imagens/$mt_amplia->imb_imagens";

$tamanho_fixoo = "Sim";   
$largura_fixaa = 775;   
$altura_fixaa = 450;  
$percentuall = 40; 

if($tamanho_fixoo=="N" && ($percentuall<1 || $percentuall>100)){
    echo "O percentual deve ser um número entre 1 e 100!";
    exit;
}

$extensaoo = pathinfo($mt_amplia->imb_imagens); 
$ver_extt = $extensaoo['extension'];


$extt = $ver_extt;

if($extt == "jpg" || $extt == "jpeg"){  
$arquivo_miniaturaa = explode('.', $imagemm);
$arquivo_miniaturaa = $arquivo_miniaturaa[0]."_mini.jpg";
$img_origemm = ImageCreateFromJPEG($imagemm);
$origem_xx = ImagesX($img_origemm);
$origem_yy = ImagesY($img_origemm);
  }
if($ext == "gif"){  
$arquivo_miniaturaa = explode('.', $imagemm);
$arquivo_miniaturaa = $arquivo_miniaturaa[0]."_mini.gif";
$img_origemm = ImageCreateFromGif($imagemm);
$origem_xx = ImagesX($img_origemm);
$origem_yy = ImagesY($img_origemm);
  }
if($tamanho_fixoo=="Sim"){
    $xx = $largura_fixaa;
    $yy = $altura_fixaa;
}else{
    $xx = intval ($origem_xx * $percentuall/100);
    $yy = intval ($origem_yy * $percentuall/100);
}

$img_finall = ImageCreateTrueColor($xx,$yy);

ImageCopyResampled($img_finall, $img_origemm, 0, 0, 0, 0, $xx+1, $yy+1, $origem_xx , $origem_yy);

if($extt == "jpg" || $extt == "jpeg"){
ImageJPEG($img_finall, $arquivo_miniaturaa);
}

if($extt == "gif"){ 
Imagegif($img_finall, $arquivo_miniaturaa);
}
ImageDestroy($img_origemm);
ImageDestroy($img_finall);  

    $ver_imagemm = "<img src='$arquivo_miniaturaa' border='1'>";
echo "<div id='imagem'>".$ver_imagemm."</div>";
}
}

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Imaginei que você apenas queria atualizar uma imagem que apontasse para uma página PHP e essa página se encarregasse de mostrar uma imagem vinda do banco ou algo do tipo

Mas o que você quer fazer é modificar diretamente a url da imagem

Nesse caso, você terá que criar uma função para trocar a imagem

Algo como:

function TrocaImagem(url){
parent.frames["ver_imagem"].document.getElementById("imagem").src=url
}
E chamar essa função quando quiser trocar a imagem Uma idéia seria você gerar o html assim:
<input type="button" value="Primeira Imagem" onclick="TrocaImagem('url_da_primeira_imagem')">
<input type="button" value="Imagem 2" onclick="TrocaImagem('segunda_imagem.jpg')">

Link para o comentário
Compartilhar em outros sites

  • 0

entendi...

dá uma olhada... http://www.ellehcim.com.br/ver.php?id=1&am...1&pagina=br (a página na verdade funciona em um popup e te enviei na janela normal...rs).. observe que quando você clicar na miniatura, a imagem ela não amplia, só amplia se der um refresh.. mas isso só acontece no IE.. e queria que a imagem aumentasse seu tamanho automaticamente, sem ter que atualizar o frame...

abraços...

Link para o comentário
Compartilhar em outros sites

  • 0

Cara...testei aqui no IE8 e funcionou perfeitamente (o site está demorando pra carregar, creio que deva ser algum problema no servidor)

Vou ver se consigo testar em outras versões do IE e posto aqui

Edit:

Testei em outras versões, não funciona em navegadores inferiores ao IE7

Vou tentar descobrir o que é

Edit²

Tente especificar os atributos width e height na imagem

<img src="sua_imagem.jpg" border='1' height="100%" width="100%">

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...