Menu

16. Abrir novas Janelas

Neste capítulo mostraremos como podem ser abertas novas janelas sobre uma janela contendo o documento principal.

É importante não confundir esta forma de abrir janelas com a divisão da tela em várias partes, ou mesmo com a chamada de outras páginas. Para que não existam dúvidas, explicaremos um pouco sobre estes dois outros métodos.

A divisão de uma tela em várias janelas contendo documentos diferentes é feita através do objecto FRAME do Html. Neste caso, a tela inteira é considerada como um FrameSet e cada parte em que ela for dividida é considerada como um Frame. Cada Frame é definido dentro do FrameSet através da especificação dos parâmetros: % da tela na vertical (cols), % da tela na horizontal (rows) e nome de cada frame. Uma vez criado o FrameSet poderemos abrir documentos distintos em cada Frame. Para fazer isto, acrescente ao link do documento a directiva target=nome do frame.

Ex.:

<href= "Eventos.htm " target= "Principal ">

Isto fará com que o arquivo html Eventos.htm seja aberto dentro do frame de nome Principal.

A simples chamada de outras telas (documentos) é feita através do link para o documento desejado.

Ex.:

<href= "Eventos.htm " >

Isto fará com que o arquivo html Eventos.htm seja aberto em substituição a tela existente.

Bem, voltemos ao nosso caso que é a abertura de janelas sobre um documento. Isto é feito através de comandos JavaScript, que permitem: Abrir uma janela, Abrir um documento dentro desta janela, Escrever o conteúdo da janela, Fechar a janela e Fechar o documento.

Abrir a Janela:

A sintaxe geral deste método é a seguinte:

Variavel = window.open ( "Url ", " Nome da janela ", " Opções ")

Onde:

Variavel - Nome que será atribuído como propriedade da janela.

Url - Endereço Internet onde a janela será aberta. Normalmente você estará utilizando a sua própria Url, neste caso, preencha com " ".

Nome da Janela - É o nome que aparecerá no top da janela (Título)

Opções - São as opções que definem as características da janela, quais sejam:

toolbar - Cria uma barra de ferramentas tipo " Back ", " Forward ", etc.

location - Abre a barra de location do browse.

directories - Abre a barra de ferramentas tipo " What’s New ", " Handbook ", etc.

status - Abre uma barra de status no rodapé da janela.

scrollbars - Abre barras de rolamento vertical e horizontal.

menubar - Cria uma barra de menu tipo " File ", " Edit ", etc.

resizable - Permite ao usuário redimensionar a janela.

width - Especifica a largura da janela, em pixels.

height - Especifica a altura da janela, em pixels.

Todas as opções (exceto width e height) são boleanas e podem ser modificadas de duas formas. Exemplo: " toolbar " ou " toolbar=1 ") são a mesma coisa. Se nada for especificado, entende-se que todas as opções estão ligadas; Caso seja especificada qualquer opção, será entendido que estão ligadas apenas as opções informadas.

As opções devem ser informadas separadas por vírgula, sem espaço entre elas.

Abrir um Documento:

Para abrir um documento dentro da janela, deve ser utilizado o seguinte método:

Variavel.document.open()

Onde " Variavel " é o nome da variável associada ao método window.open

Escrever no Documento:

Para escrever a tela no documento, deve ser utilizado o seguinte método:

Variavel.document.write ( "Comandos html, Comandos JavaScript, Textos, etc. ")

Fechar a Janela:

Para fechar a janela, utilize o seguinte método:

Variavel.document.write ( "window.close() ")

Fechar o Documento:

Para fechar o documento, utilize o seguinte método:

Variavel.document.close ()

A seguir, apresentamos um exemplo no qual estamos abrir um documento onde o usuário escolherá uma opção (Elógica ou Recife) e dará um Click em um botão (Nova Janela). Neste momento será aberta uma nova janela que conterá a foto escolhida pelo usuário e um botão que, ao receber o Click, fechará a janela.

Normalmente, qualquer href ou src dentro de uma página, por padrão, acede ao arquivo ou À imagem no mesmo directório onde está a página actual, a menos que seja especificado um novo caminho (Path).

No caso de abertura de uma nova janela, através do método window.open, as versões mais antigas dos browses não conseguem " ver " o Path, sendo necessária a completa informação do caminho (path) onde o arquivo ou imagem estão armazenados, em todas as chamadas dos comandos Html href ou src.

Observe que na função estamos utilizando dois novos métodos:

navigator.appVersion: para verificarmos a versão do browse que esta sendo utilizado

document.location: para obtermos o Path da localização do arquivo Html que está correntemente em uso.

No exemplo abaixo estamos, inicialmente, identificando a versão do browse. Caso seja antiga, para não escrevermos todo o caminho a cada chamada e ainda, considerando que os arquivos chamados estão no mesmo directório da página actual, estamos obtendo o Path do arquivo actual e eliminando o nome do arquivo que está na última referencia do Path. Quando fizermos a chamada das imagens (comando src) só será necessário a concatenação do nome do arquivo chamado com a raiz do path que, no exemplo, armazenamos na variável de nome Local.

<script>

function Abrejanela(Opcao) {

Versao = navigator.appVersion

Versao = Versao.substring(0, 1)

Local = " "

if (Versao < 3) {

Local = document.location

UltLoc = Local.lastIndexOf( "/ ")

Local = Local.substring(0, UltLoc + 1)

}

//

NovaJanela = window.open ( " ", " OutraJanela ", " width=300,height=400 ")

NovaJanela.document.open()

NovaJanela.document.write ( "<html><head><title>Nova Janela ")

NovaJanela.document.write ( "</title></head><body bgcolor=’white’> ")

NovaJanela.document.write ( "<form> ")

if (Opcao == 1)

{ NovaJanela.document.write ( "<br>Logomarca Elogica<hr><br> ")

NovaJanela.document.write

( "<img width=200 height=200 src= " + Local + " Marcaelo.gif> ") } else { NovaJanela.document.write ( "<br>Recife Alto Astral<hr><br> ")

NovaJanela.document.write

( "<img width=150 height=200 src= " + Local + " Recife.gif> ") }

//

NovaJanela.document.write ( "<br><hr><p></p></form> ")

NovaJanela.document.write ( "<form><input type=’button’ name=’Fecha’ " +

"value=’Fecha Janela’ " + " onclick=’window.close()’> ")

NovaJanela.document.write ( "</form></body></html> ")

NovaJanela.document.close() }

</script>

<body>

<p></p>

<p>Escolha a foto a ser apresentada na nova janela:</p>

<form method= "POST " name= "Form1 ">

<p>

<input type=radio name= "Opcao " value= "1 " checked>Elogica

<input type=radio name= "Opcao " value= "2 ">Recife

</p> <p>

<input type= "button " name= "Envia " value= "Nova Janela "

onclick= "if (Form1.Opcao[0].checked == true)

{Abrejanela(Form1.Opcao[0].value) }

else

{Abrejanela(Form1.Opcao[1].value) } " >

</p>

</form>

</body>

CDs
VOLTAR