Ir para conteúdo

Arquivado

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

jtftelles

focus em textbox numa pagina com frames!

Recommended Posts

Olá programadores da imasters!

 

Sempre que tenho uma duvida e posto aqui algum programaador consegue solucionar, por isso eu sempre volto... então... vamos ao meu "problemão"

 

Criei um chat com códigos PHP + Javascript + Mysql... está funcionando beleza... com apenas um probleminha: a pagina do chat é dividida em frames... (um para o topo... outro no meio e outro no rodapé)...

 

eu preciso que o meu cursor fique constantemente focado na textbox que está no frame do rodapé... para o usuário não ter q ficar clicando lá para escrever, sacam? Já vi vários códigos... mas não achei ainda um código pra mim focar o cursor em determinado frame da tela... apelas para as telas inteiras...

 

alguém pode me ajudar???

 

meu frame do rodapé se chama bottomFrame... o formulário onde a textbox está se chama form1 e a textbox se chama Texto.

 

eu tinha visto algo do tipo... parent.bottomframe.form1.texto.focus()

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tinha visto algo do tipo... parent.bottomframe.form1.texto.focus()

Cuidado com case-sensitive, hehe!

 

Para acessar forms ou focalizar objetos dentro de iframes, você poderá utilizar:

parent.bottomFrame.document.form1.Texto.focus();
ou então:

var objFrame = parent.frames["bottomFrame"].document;
objFrame.getElementById("Texto").focus;

São dois exemplos que funcionam bem no IE e FF.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, coloquei o código na pagina principal que engloba todos os frames e nada... o cursor não foca no textbox... alguma idéia do que possa ser?

 

Precisaria de um foco que ficasse sempre ali.

 

Obrigado.

 

 

eu tinha visto algo do tipo... parent.bottomframe.form1.texto.focus()

Cuidado com case-sensitive, hehe!

 

Para acessar forms ou focalizar objetos dentro de iframes, você poderá utilizar:

parent.bottomFrame.document.form1.Texto.focus();
ou então:

var objFrame = parent.frames["bottomFrame"].document;
objFrame.getElementById("Texto").focus;

São dois exemplos que funcionam bem no IE e FF.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Após realizar alguns testes, vi que o código que postei está funcionando mas, o que me chamou a atenção foi como a função javascript estava sendo chamada... isso me causou um pouco de dúvida pois o javascript estava na página principal, e a chamada estava dentro de uma das páginas do frame.

 

Tem que ver em que momento você gostaria que o campo recebesse o foco. Se for após o envio das mensagens, se for após página ser atualizada, etc.

 

Isso é importante para que o evento localize corretamente a função JavaScript.

 

Em que momento você quer deixar o foco na caixa de texto?

 

Nos meus testes, eu queria escrever algo em um dos campos de texto do 3º frame ("frame da base"). Chamei o arquivo que é carregado nesse 3º frame de temp3.htm, que contém o código:

<html><head></head>
<body>
<form name="form1" action="" method="post">
<input type="text" name="texto1" id="texto1">
</form>
</body></html>

e a página principal com o código:

<html>
<head>
<title>FrameChat</title>
<script type="text/javascript">
function cursorFocus() {
	var objFRAME = parent.frames["base"].document;
	alert("Irei escrever algo no frame: base!");
	objFRAME.form1.texto1.value = "Acessar campo texto em frame 'base'!";
}
onload = cursorFocus;
</script>
<style type="text/css">
frame.frameGLOBAL {border:#0080FF 0px solid;}
frame.frameTOPO {border:#0080FF 1px solid;}
frame.frameCENTRO {border:#00FFFF 1px solid;}
frame.frameBASE {border:#FF80FF 1px solid;}
</style>
</head>
<frameset name="GLOBAL" id="GLOBAL" border="0" rows="15%,*,15%" class="frameGLOBAL">
<frame name="topo" id="topo" src="linha1.htm" SCROLLING="no" FRAMEBORDER="NO" class="frameTOPO">
<frame name="centro" id="centro" src="linha2.htm" NORESIZE SCROLLING="no" class="frameCENTRO">
<frame name="base" id="base" src="temp3.htm" NORESIZE SCROLLING="no" class="frameBASE">
<noframes>
<body>
</body>
</noframes>
</frameset>
</html>

Por incrível que pareça funcionou até no Firefox! :-P (o FF sempre me dá dor de cabeça).

 

Copie e cole os códigos em seu editor HTML e diga se ainda tem alguma dúvida.

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.