• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pvalentim

document.getElementsByTagName - não funciona no IE

15 mensagens neste tópico

Boa tarde

Ora bolas para isto.

Como muita gente utiliza o Internet Explorer preciso de fazer isto:

<select size="1" id="idSelect" name="D2">

<option onclick="document.getElementsByTagName('iframe')[0].src = 'pag1/pag.htm'">Página 1</option>

que funciona no Firefox, de forma a que funciona também no IE.

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

porque não usas o getElmentsById em vez do TagName?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estou a usar numa função:

function tratar_botao_esq(){

    var num=document.getElementById("idSelect")

    switch (num.selectedIndex)

{

case 1:

document.getElementsByTagName('iframe')[0].src = "pag1/pag.htm";

    num.selectedIndex=0;

break;

.....

E funciona tanto no firefox como no IE

Mas assim não funciona no IE e funciona no firefox:

<select size="1" id="idSelect" name="D2">

  <option onclick="document.getElementsById('iframe')[0].src = 'pag1/pag.htm'">Página 1</option>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Atribui um id ao <iframe> (id="iframelolz") e depois em vez de document.getElementsByTagName('iframe')[0].src = "pag1/pag.htm"; usa:

document.getElementById('iframelolz').src = "pag1/pag.htm";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já fiz isso.

<option onclick="document.getElementById('iframe_pagina').src = 'pag1/pag.htm'">Página 1</option>

Continua a não funcionar no IE e a funcionar no firefox.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No <iframe> acrescenta também name="iframe_pagina" :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não está fácil, não funciona.

Recapitulando.

O select está assim:

<option onclick="document.getElementById('iframe_pagina').src = 'pag1/pag.htm'">Página 1</option>

A iframe está assim:

<iframe id= "iframe_pagina" name="iframe_pagina" src=pag1/pag.htm

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bah, experimenta usar document.getElementByName. Se não der no Firefox diz.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois, assim nem no firefox funciona

<option onclick="document.getElementByName('iframe_pagina').src = 'pag1/pag.htm'">Página1x</option>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois, assim nem no firefox funciona

<option onclick="document.getElementByName('iframe_pagina').src = 'pag1/pag.htm'">Página1x</option>

E manteste o name="" no <iframe>?
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, manti.

<option onclick="document.getElementByName('iframe_pagina').src = 'pag2/pag.htm'">Página 2</option>

<iframe id= "iframe_pagina" name="iframe_pagina" src=pag1/pag.htm

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O evento onclick não existe no IE nas options... poe mas é um onchange(); no select, e modifica a função de acordo com isso...

EDIT: correcção de uma pequena bacorada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas tenho de usar uma função então.

Não posso usar isto:

<option onchange="document.getElementsByTagName('iframe')[0].src = 'pag1/pag.htm'">Página 1</option>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de por isso no <select, qualquer coisa tipo isto:

<select onchange="document.getElementByTagName('iframe')[0].src = this.options[this.selectedIndex].value+'/pag.html';">
<option value="pag1">Página 1</option>
<option value="pag2">Página 2</option>
...
</select>

Penso que assim deve resolver, não testei mas deve dar.

Edit: faltava uma barra. E lembrei-me, se assim não der, experimenta alterar esta parte:

(...)this.options[this.selectedIndex].value(...)

para:

(...)this.Options[this.selectedIndex].value(...)

não me lembro se o option é com "o" grande ou pequeno....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pela ajuda.

Jreis, esse código com esse cídog também não me safei.

Acabei por resolver com uma função.

function func_pagina(){

    var valor=document.getElementById("idSelect").value;

    var caminho=valor+"/pag.htm";

    document.getElementsByTagName('iframe')[0].src = caminho;

}

.....

<select size="1" id="idSelect" name="D1" onchange="func_pagina()">

<option value="pag1">Página 1</option>

<option value="pag2">Página 2</option>

</select>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora