Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gossi

Problema com POP UP

Recommended Posts

Pessoal,Não tenho muita intimidade com o javascript, muitas vezes eu copio os códigos e faço alguns ajustes básicos.Eu possuo um código de um slideshow que linka com outras páginas só que estou precisando fazer as páginas abrirem num popup com width=600 e height=408.Já tentei alterar o target "blank" para "popup" e também tentei inserir o "window.open" no h ref, mas foi em vão. Na hora que eu testo o código o slide não aparece.Não sei se tem que alterar outra área do código, por isso estou enviando o código abaixo para análise. Se alguém puder me ajudar eu ficarei muito grato, imagino que não seja algo difícil para alguém mais expert no assunto.Abraços,Gossi<script language="JavaScript1.2">/*Conveyor belt slideshow script- © Dynamic Drive (www.dynamicdrive.com)For full source code, 100's more DHTML scripts, and Terms Of Use, visit dynamicdrive.com*///Specify the slider's width (in pixels)var sliderwidth="460px"//Specify the slider's heightvar sliderheight="90px"//Specify the slider's slide speed (larger is faster 1-10)var slidespeed=1//configure background color:slidebgcolor="white"//Specify the slider's imagesvar leftrightslide=new Array()var finalslide=''leftrightslide[0]='<a href="ofertas/37341/home.htm" target="_blank"><img src="ofertas/37341/37341.jpg" border=1></a>'leftrightslide[1]='<a href="ofertas/36874/home.htm" target="_blank"><img src="ofertas/36874/36874.jpg" border=1></a>'leftrightslide[2]='<a href="ofertas/35793/home.htm" target="_blank""><img src="ofertas/35793/35793.jpg" border=1></a>'leftrightslide[3]='<a href="ofertas/00612/home.htm" target="_blank"><img src="ofertas/00612/00612.jpg" border=1></a></a>'leftrightslide[4]='<a href="ofertas/00875/home.htm" target="_blank""><img src="ofertas/00875/00875.jpg" border=1></a>'////NO NEED TO EDIT BELOW THIS LINE////////////var copyspeed=slidespeedleftrightslide='<nobr>'+leftrightslide.join(" ")+'</nobr>'var iedom=document.all||document.getElementByIdif (iedom)document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+leftrightslide+'</span>')var actualwidth=''var cross_slide, ns_slidefunction fillup(){if (iedom){cross_slide=document.getElementById? document.getElementById("test2") : document.all.test2cross_slide2=document.getElementById? document.getElementById("test3") : document.all.test3cross_slide.innerHTML=cross_slide2.innerHTML=leftrightslideactualwidth=document.all? cross_slide.offsetWidth : document.getElementById("temp").offsetWidthcross_slide2.style.left=actualwidth+20+"px"}else if (document.layers){ns_slide=document.ns_slidemenu.document.ns_slidemenu2ns_slide2=document.ns_slidemenu.document.ns_slidemenu3ns_slide.document.write(leftrightslide)ns_slide.document.close()actualwidth=ns_slide.document.widthns_slide2.left=actualwidth+20ns_slide2.document.write(leftrightslide)ns_slide2.document.close()}lefttime=setInterval("slideleft()",30)}window.onload=fillupfunction slideleft(){if (iedom){if (parseInt(cross_slide.style.left)>(actualwidth*(-1)+8))cross_slide.style.left=parseInt(cross_slide.style.left)-copyspeed+"px"elsecross_slide.style.left=parseInt(cross_slide2.style.left)+actualwidth+30+"px"if (parseInt(cross_slide2.style.left)>(actualwidth*(-1)+8))cross_slide2.style.left=parseInt(cross_slide2.style.left)-copyspeed+"px"elsecross_slide2.style.left=parseInt(cross_slide.style.left)+actualwidth+30+"px"}else if (document.layers){if (ns_slide.left>(actualwidth*(-1)+8))ns_slide.left-=copyspeedelsens_slide.left=ns_slide2.left+actualwidth+30if (ns_slide2.left>(actualwidth*(-1)+8))ns_slide2.left-=copyspeedelsens_slide2.left=ns_slide.left+actualwidth+30}}if (iedom||document.layers){with (document){document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')if (iedom){write('<div style="position:relative;width:'+sliderwidth+';height:'+sliderheight+';overflow:hidden">')write('<div style="position:absolute;width:'+sliderwidth+';height:'+sliderheight+';background-color:'+slidebgcolor+'" onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed">')write('<div id="test2" style="position:absolute;left:0px;top:0px"></div>')write('<div id="test3" style="position:absolute;left:-1000px;top:0px"></div>')write('</div></div>')}else if (document.layers){write('<ilayer width='+sliderwidth+' height='+sliderheight+' name="ns_slidemenu" bgColor='+slidebgcolor+'>')write('<layer name="ns_slidemenu2" left=0 top=0 onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>')write('<layer name="ns_slidemenu3" left=0 top=0 onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>')write('</ilayer>')}document.write('</td></table>')}}</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim? Não entendi sua pergunta. Você quer abrir a página com o slide show dentro de um popup?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim? Não entendi sua pergunta. Você quer abrir a página com o slide show dentro de um popup?

<{POST_SNAPBACK}>

Oi,

 

O javascript cria um slideshow, onde clicando na imagem linka para uma página externa (blank, popup). A página a ser aberta é simples, só que eu queria que ela abrisse com tamanho fixo 600x408. É esta a minha dificuldade com este script, eu tentei de algumas formas, mas não funciona. Eu queria solucionar esse problema.

Quando eu citei que o slide não aparece é na própria página, antes de linkar.

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por acaso, a parte que tem os links e as imagens é essa aqui:

leftrightslide[0]='<a href="ofertas/37341/home.htm" target="_blank"><img src="ofertas/37341/37341.jpg" border=1></a>'leftrightslide[1]='<a href="ofertas/36874/home.htm" target="_blank"><img src="ofertas/36874/36874.jpg" border=1></a>'leftrightslide[2]='<a href="ofertas/35793/home.htm" target="_blank""><img src="ofertas/35793/35793.jpg" border=1></a>'leftrightslide[3]='<a href="ofertas/00612/home.htm" target="_blank"><img src="ofertas/00612/00612.jpg" border=1></a></a>'leftrightslide[4]='<a href="ofertas/00875/home.htm" target="_blank""><img src="ofertas/00875/00875.jpg" border=1></a>'

E não funciona?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por acaso, a parte que tem os links e as imagens é essa aqui:

 

leftrightslide[0]='<a href="ofertas/37341/home.htm" target="_blank"><img src="ofertas/37341/37341.jpg" border=1></a>'
leftrightslide[1]='<a href="ofertas/36874/home.htm" target="_blank"><img src="ofertas/36874/36874.jpg" border=1></a>'
leftrightslide[2]='<a href="ofertas/35793/home.htm" target="_blank""><img src="ofertas/35793/35793.jpg" border=1></a>'
leftrightslide[3]='<a href="ofertas/00612/home.htm" target="_blank"><img src="ofertas/00612/00612.jpg" border=1></a></a>'
leftrightslide[4]='<a href="ofertas/00875/home.htm" target="_blank""><img src="ofertas/00875/00875.jpg" border=1></a>'

 

E não funciona?

<{POST_SNAPBACK}>

Oi Fael,

 

Estes são os links sim! Eles funcionam se estiverem como acima (com o target _blank), mas quando eu tento fazer abrir como popup dá erro no código e não exibe o slide.

Se você quiser ver no site onde tem este slide, acesse www.depaula.com.br.

É o slide que aparece na parte inferior da página.

 

Mais uma vez obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já tentou colocar o window.open no atributo onclick da tag a?Eu não tenho permissão para acessar esse link que você me passou daqui da empresa... :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já tentou colocar o window.open no atributo onclick da tag a?

 

Eu não tenho permissão para acessar esse link que você me passou daqui da empresa...   :(

<{POST_SNAPBACK}>

Oi Fael,

 

Agora eu consegui com o window.open! Viva!!! Só que não sei qual o atritbuto para o popup carregar no centro da página, você sabe qual é?

 

O script que estou usando é:

<script type="text/javascript">

<!--

function myPopup() {

window.open( "ofertas/37341/home.htm","popup","width=600,height=408,resizable=0" );

}

//-->

</script>

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você primeiro pega as medidas da tela do usuario com:

screen.width // Largura

screen.height // Altura

 

depois você dirá o tamanho da pop up

 

screen.width - largura da pop up

screen.height - altrua da pop up

 

depois de tudo isso, divide por 2

 

screen.width - largura da pop up /2

screen.height - altrua da pop up /2

 

Código completo

 

ASP

[*]<script>

[*]function abre(page) {

[*]var w = 300;

[*]var h = 400;

[*]var lado = (screen.width - w) / 2;

[*]var topo = (screen.height - h) / 2;

[*]window.open('page','nome','height='+h+',width='+w+',top='+topo+',left='+lado+'');

[*]}

[*]</script>

[*]

[*]<a href="java script:;" onclick="abre();">Abre</a>

 

dentro dos parênteses da função abre() que estu chamando dentro do onclick, você coloca entre ' ' o endereço da página que deseja abrir na popup.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala aí Fael,Veja como ficou o meu código:<script>function abre(page) {var w = 800;var h = 600;var lado = (screen.600 - w) / 2;var topo = (screen.408 - h) / 2;window.open('ofertas/37341/home.htm','oferta','height='600',width='408',top='+topo+',left='+lado+'');}</script><a href=="java script:;" onclick="abre("ofertas/36874/home.htm","popup","width=600,height=408","left=center,top=center");">><img src="ofertas/37341/37341.jpg" border=1></a>Desta maneira ao clicar na imagem não está abrindo o popup e sim uma página em branco com o seguinte caminho:W:\INT\Páginas 2004\De Paula\="javascript"O que eu estou fazendo de errado?Valeu,Cleber

Compartilhar este post


Link para o post
Compartilhar em outros sites

<script>function abre(page) {var w = 800;var h = 600;var lado = (screen.600 - w) / 2;var topo = (screen.408 - h) / 2;window.open('ofertas/37341/home.htm','oferta','height='600',width='408',top='+topo+',left='+lado+'');}</script>
entenda o script..

você cria uma função com nome abre e pega uma variavel page que é enviada por um link (no seu caso)..essa variavel pelo que vi, deveria estar enviando a url da pagina que você vai abrir...

depois na linha do window.open() você coloca uma url da pagina que deve ser aberta novamente.. então esse script é "independente". . tirando a variavel na função..

<a href=="javascript:;" onclick="abre("ofertas/36874/home.htm","popup","width=600,height=408","left=center,top=center");">><img src="ofertas/37341/37341.jpg" border=1></a>
aqui você cria um link que chama a função abre e que manda a url da pagina que deve abrir na pop up (de novo) e tbm envia as outras opcoes da pop up (isso não seria necessario, já que na função você não está pegando esses dados)

 

um erro é o href que você colocou dois ==, onde seria apenas um =..

depois na hr de dar o onclick.. repare que você chama o onclick="" com aspas dupla e usa as mesmas aspas dentro do onclick, isso pode dar erros.. então substitua os " por ' ... que estão dentro do onclick, já para adiantar, tire as outras opcoes e deixe apeans a url ficando assim

<a href="javascript:;" onclick="abre('ofertas/36874/home.htm');"><img src="ofertas/37341/37341.jpg" border="1" /></a>
e a função ficaria assim

<script>function abre(page) {var w = 408;var h = 600;var lado = (screen.width - w) / 2;var topo = (screen.height - h) / 2;window.open(page,'oferta','height=600,width=408,top='+topo+',left='+lado+'');}</script>
repare que eu tirei a url que estava no window.open() e adicionei apenas a variavel page... ela contem a url que vem do link :)

 

Editado.

Olhando o script melhor agora, ele estava um pouco errado, agora funciona como deveria ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu código completo ficaria assim:

<script language="JavaScript1.2">function abre(page) {var w = 300;var h = 400;var lado = (screen.width - w) / 2;var topo = (screen.height - h) / 2;window.open('page','nome','height='+h+',width='+w+',top='+topo+',left='+lado+'');}/*Conveyor belt slideshow script- © Dynamic Drive (www.dynamicdrive.com)For full source code, 100's more DHTML scripts, and Terms Of Use, visit dynamicdrive.com*///Specify the slider's width (in pixels)var sliderwidth="460px"//Specify the slider's heightvar sliderheight="90px"//Specify the slider's slide speed (larger is faster 1-10)var slidespeed=1//configure background color:slidebgcolor="white"//Specify the slider's imagesvar leftrightslide=new Array()var finalslide=''leftrightslide[0]='<a href="javascript:;" onclick=abre(\'ofertas/37341/home.htm\') target="_blank"><img src="ofertas/37341/37341.jpg" border=1></a>'leftrightslide[1]='<a href="javascript:;" onclick=abre(\'ofertas/36874/home.htm\') target="_blank"><img src="ofertas/36874/36874.jpg" border=1></a>'leftrightslide[2]='<a href="javascript:;" onclick=abre(\'ofertas/35793/home.htm\') target="_blank""><img src="ofertas/35793/35793.jpg" border=1></a>'leftrightslide[3]='<a href="javascript:;" onclick=abre(\'ofertas/00612/home.htm\') target="_blank"><img src="ofertas/00612/00612.jpg" border=1></a></a>'leftrightslide[4]='<a href="javascript:;" onclick=abre(\'ofertas/00875/home.htm\') target="_blank""><img src="ofertas/00875/00875.jpg" border=1></a>'////NO NEED TO EDIT BELOW THIS LINE////////////var copyspeed=slidespeedleftrightslide='<nobr>'+leftrightslide.join(" ")+'</nobr>'var iedom=document.all||document.getElementByIdif (iedom)document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+leftrightslide+'</span>')var actualwidth=''var cross_slide, ns_slidefunction fillup(){if (iedom){cross_slide=document.getElementById? document.getElementById("test2") : document.all.test2cross_slide2=document.getElementById? document.getElementById("test3") : document.all.test3cross_slide.innerHTML=cross_slide2.innerHTML=leftrightslideactualwidth=document.all? cross_slide.offsetWidth : document.getElementById("temp").offsetWidthcross_slide2.style.left=actualwidth+20+"px"}else if (document.layers){ns_slide=document.ns_slidemenu.document.ns_slidemenu2ns_slide2=document.ns_slidemenu.document.ns_slidemenu3ns_slide.document.write(leftrightslide)ns_slide.document.close()actualwidth=ns_slide.document.widthns_slide2.left=actualwidth+20ns_slide2.document.write(leftrightslide)ns_slide2.document.close()}lefttime=setInterval("slideleft()",30)}window.onload=fillupfunction slideleft(){if (iedom){if (parseInt(cross_slide.style.left)>(actualwidth*(-1)+8))cross_slide.style.left=parseInt(cross_slide.style.left)-copyspeed+"px"elsecross_slide.style.left=parseInt(cross_slide2.style.left)+actualwidth+30+"px"if (parseInt(cross_slide2.style.left)>(actualwidth*(-1)+8))cross_slide2.style.left=parseInt(cross_slide2.style.left)-copyspeed+"px"elsecross_slide2.style.left=parseInt(cross_slide.style.left)+actualwidth+30+"px"}else if (document.layers){if (ns_slide.left>(actualwidth*(-1)+8))ns_slide.left-=copyspeedelsens_slide.left=ns_slide2.left+actualwidth+30if (ns_slide2.left>(actualwidth*(-1)+8))ns_slide2.left-=copyspeedelsens_slide2.left=ns_slide.left+actualwidth+30}}if (iedom||document.layers){with (document){document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')if (iedom){write('<div style="position:relative;width:'+sliderwidth+';height:'+sliderheight+';overflow:hidden">')write('<div style="position:absolute;width:'+sliderwidth+';height:'+sliderheight+';background-color:'+slidebgcolor+'" onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed">')write('<div id="test2" style="position:absolute;left:0px;top:0px"></div>')write('<div id="test3" style="position:absolute;left:-1000px;top:0px"></div>')write('</div></div>')}else if (document.layers){write('<ilayer width='+sliderwidth+' height='+sliderheight+' name="ns_slidemenu" bgColor='+slidebgcolor+'>')write('<layer name="ns_slidemenu2" left=0 top=0 onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>')write('<layer name="ns_slidemenu3" left=0 top=0 onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>')write('</ilayer>')}document.write('</td></table>')}}</script>

Ah Lex, Como <a href=... está dentro de um document.write, tem que colocar \ antes de 'flwAbraço,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como <a href=... está dentro de um document.write, tem que colocar \ antes de '

sim, é uma outra opção.. mais tbm pode se usar ' para diferenciar... ;)

<{POST_SNAPBACK}>

Acho eu tu não entendeu o que eu quis dizer, você colocou somente ', mas o código se perde dentro do document.write então precisa quebrar dando um \ antes do ', assim:

 

\'

 

Certo? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Abração,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fael e Lex,Eu agradeço muito a ajuda de vocês! Está quase lá faltando algum detalhezinho:Eu usei o script que o Lex me passou, mas na hora de visualizar no browser o script não funciona, não exibe o slide. Imagino que o problema esteja em:onclick="abre('ofertas/36874/home.htm');"Eu digo isso porque estou trabalhando no Dreamweaver e o número de identificação do imóvel '36874' e a página 'home' fica em vermelho enquanto o resto do código permanece em preto.Também usei o script completo do Fael, mas o popup está aparecendo em branco, também imagino que o problema esteja no caminho do onclick:onclick=abre(\'ofertas/37341/home.htm\')Eu desconhecia a barra "\", usando ela realmente consigo visualizar no browser o slide, mas se a tiro o script não funciona.O que pode ser? Precisa estar publicado para funcionar ou no preview do Dreamweaver já deveria funcionar? Eu imagino que sim!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fael e Lex,

 

Eu agradeço muito a ajuda de vocês! Está quase lá faltando algum detalhezinho:

Eu usei o script que o Lex me passou, mas na hora de visualizar no browser o script não funciona, não exibe o slide. Imagino que o problema esteja em:

 

onclick="abre('ofertas/36874/home.htm');"

 

Eu digo isso porque estou trabalhando no Dreamweaver e o número de identificação do imóvel '36874' e a página 'home' fica em vermelho enquanto o resto do código permanece em preto.

 

Também usei o script completo do Fael, mas o popup está aparecendo em branco, também imagino que o problema esteja no caminho do onclick:

 

onclick=abre(\'ofertas/37341/home.htm\')

 

Eu desconhecia a barra "\", usando ela realmente consigo visualizar no browser o slide, mas se a tiro o script não funciona.

 

O que pode ser? Precisa estar publicado para funcionar ou no preview do Dreamweaver já deveria funcionar? Eu imagino que sim!

<{POST_SNAPBACK}>

Ao invés das \' utilize ", não sei se vai funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fael,

 

Não funcionou! http://forum.imasters.com.br/public/style_emoticons/default/yay.gif

 

Eu publiquei, talvez assim fique mais fácil de visualizar:

 

http://www.depaula.com.br/teste/

 

Ele roda o script, abre o popup nas dimensões corretas e centralizado, mas aparece "The page cannot be found".

 

Estamos chegando lá... Vou fazer mais alguns testes por aqui.

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu entrei no link que você passou e percebi que está funcionando sem problemas. Não sei o que é que você está dizendo que está errado... :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala aí Fael,

 

Agora está funcionando, mas tive que fazer umas adaptações no código, imagino que não foi do modo mais correto, mas está funcionando.

 

Eu renomeei a function "abre" para oferta e no window.open onde estava ('page'...) eu coloquei o link da página. Terminou ficando dois links e aí eu imagino que esteja a "gambiarra", além de ter que criar uma function para cada oferta (oferta1, oferta2, oferta3, oferta4 e oferta5).

Funciona, mas acho que o código não está como deveria! http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Se você ou alguém quiser tentar enxugar o código, o endereço é www.depaula.com.br/teste.

Estou terminando as demais ofertas, logo mais estará completo.

Obrigado pela ajuda! Achei este fórum muito legal, com pessoas interessadas e com uma boa rotatividade.

 

Valeu! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou ver o que posso fazer, mas realmente, o que você fez foi gambiarra... heheheheAssim que eu tiver um tempinho eu vou fazer isso pra você.Que bom que gostou do fórum, sempre que precisares, estaremos aqui.Abraço,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Fael,Estive uns dias foras do fórum.Muito obrigado pela sua ajuda e interesse! Realmente fiquei muito feliz com este fórum.Abraços,Cleber

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.