Jump to content


Photo

Remover Tags Do Html


  • Faça o login para participar
9 replies to this topic

#1 Alexx Ares

Alexx Ares

    Doutor

  • Usuários
  • 921 posts
  • Sexo:Masculino
  • Localidade:Santos - SP

Posted 15/05/2005, 15:06

pessoal..

Tenho uma pagina com um link.
Quero que, quando clicar nesse link, ele seja removido, mas continue o texto / imagem. :o

Tentei com innerHTML mas ele só remove o texto, não o link... <_<

Não pode também substituir o link por "#" ou "java script:return;" porque senão recarrega a página. :(

Valeu!!!
:lol: (y)
||| PENSE NISSO ||| O ser humano, dizem, deve dormir 8 horas por dia. Isso equivale a 1 terço do seu dia dormindo. Agora imagine a seguinte situação: você, com 75 anos, prestes a morrer, olha para trás e percebe que dormiu 1 terço da sua vida, ou seja, 25 anos. Cara... 25 ANOS DORMINDO !!! Se você tem menos de 25 anos, simplesmente você vai dormir mais do que viveu até hoje!!! Pense nisso... e durma menos.

#2 scriptfacil

scriptfacil

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 15/05/2005, 15:51

removido como? explique melhor.
Tiraduvidas.com - artigos sobre programação
Deseja ver um artigo em nosso site?
forumtiraduvidas@hotmail.com
http://www.tiraduvidas.com

#3 Rehzus

Rehzus

    Normal

  • Usuários
  • 98 posts
  • Sexo:Não informado

Posted 16/05/2005, 07:58

Tente basicamente isso, Alexx (pesquise sobre DOM no quirksmode.org):

var meuLink=document.getElementById(id');
var textoLink=meuLink.childNodes[0];

Pronto agora você tem o texto sem as tags do link. :P
Espero que seja isso.

Ai depois basta você remover o link a seu gosto e colocar apenas o texto....
Obs.: Caso tenha tags dentro do link e naõ somente texto então vc tera que pegar todos os childNodes do link e tratar da forma que lhe convir.
"A imaginação é muito mais importante que o conhecimento" (Albert Einstein)

#4 Alexx Ares

Alexx Ares

    Doutor

  • Usuários
  • 921 posts
  • Sexo:Masculino
  • Localidade:Santos - SP

Posted 16/05/2005, 08:07

Rezhus...

Não pude testar ainda, mas vou ver isso a noite no meu PC...
Você poderia me explicar o que é e o que faz esse childNode ? Eu tinha visto ele em alguns scripts, mas até agora não entendi muito bem o que ele faz... :unsure:

scriptfacil, remover é desabilitar o link... alguma maneira de quando clicar no link ele fique inativo, mas sem usar obj.href e alterar para # ou null pois isso recarrega a pagina e trava o script. Tenho q dar um jeito de o link receber um click e não ficar mais clicavel. :o

Valeu!
:lol: (y)

Edição feita por: Alexx Ares, 16/05/2005, 08:09.

||| PENSE NISSO ||| O ser humano, dizem, deve dormir 8 horas por dia. Isso equivale a 1 terço do seu dia dormindo. Agora imagine a seguinte situação: você, com 75 anos, prestes a morrer, olha para trás e percebe que dormiu 1 terço da sua vida, ou seja, 25 anos. Cara... 25 ANOS DORMINDO !!! Se você tem menos de 25 anos, simplesmente você vai dormir mais do que viveu até hoje!!! Pense nisso... e durma menos.

#5 Rehzus

Rehzus

    Normal

  • Usuários
  • 98 posts
  • Sexo:Não informado

Posted 16/05/2005, 19:38

Alex você pode fazer assim também:

var objLink = document.getElementById('id');
objLink.onclick = function () { void(0); }

Acho que isso deve dar certo: quando o link for clicado não surtirá efeito algum!
:D

Mas se quiser te explico com funciona o childNodes, sem problemas, ok?
Caso essa solução não te sirva.
"A imaginação é muito mais importante que o conhecimento" (Albert Einstein)

#6 Alexx Ares

Alexx Ares

    Doutor

  • Usuários
  • 921 posts
  • Sexo:Masculino
  • Localidade:Santos - SP

Posted 17/05/2005, 07:14

Olha.. os dois não deram certo! :o

Vo explicar melhor a situação:
Tenho um formulario, e nele tem uma imagem com um link que envia o formulario ( via javascript ), ou seja, não uso botão submit, mas um gif normal com link: java script:form.submit();

Ok, ao enviar o formulario, enquanto a pagina carrega, a pessoa pode ficar clicando no link e vai enviando varias vezes, que nesse caso grava dados no BD varias vezes.

A unica forma de sumir com o link foi, literalmente, sumir com o link!!
Setei a style.visibility="hidden" quando aperat o botão de enviar!
Mas fica feio, o botão some e fica o espaço.

Usei então a função innerText e o botão some e vira uma frase "Aguarde..."
Porém, o bendito link continua, na frase "aguarde.." e o usuario pode ficar clicando.

E não consigo simplesmente sumir com o botão e depois incluir a frase pois esse botão não aparece sempre no mesmo lugar do formulario.

Será q expliquei melhor ou confundiu mais?!?!? :P
||| PENSE NISSO ||| O ser humano, dizem, deve dormir 8 horas por dia. Isso equivale a 1 terço do seu dia dormindo. Agora imagine a seguinte situação: você, com 75 anos, prestes a morrer, olha para trás e percebe que dormiu 1 terço da sua vida, ou seja, 25 anos. Cara... 25 ANOS DORMINDO !!! Se você tem menos de 25 anos, simplesmente você vai dormir mais do que viveu até hoje!!! Pense nisso... e durma menos.

#7 Rehzus

Rehzus

    Normal

  • Usuários
  • 98 posts
  • Sexo:Não informado

Posted 17/05/2005, 07:34

As vezes você fez errado....
as duas formas que citei deveria dar certo sim...

Posta ai o código de como você fez em relação ao meu último código de JavaScript que você.... tlavez você tenha feito algo de errado.
"A imaginação é muito mais importante que o conhecimento" (Albert Einstein)

#8 Alexx Ares

Alexx Ares

    Doutor

  • Usuários
  • 921 posts
  • Sexo:Masculino
  • Localidade:Santos - SP

Posted 17/05/2005, 09:50

Fiz exatemente como vc falou...

Na imagem o link é para uma função: java script:envia(); e esse link tem um id=botao

Nessa função, tem:

document.form.submit()
document.getElementsById('botao').style.visibility = "hidden";

Troquei a segunda linha por:

document.getElementsById('botao').childNodes[0];

E nada. :(
||| PENSE NISSO ||| O ser humano, dizem, deve dormir 8 horas por dia. Isso equivale a 1 terço do seu dia dormindo. Agora imagine a seguinte situação: você, com 75 anos, prestes a morrer, olha para trás e percebe que dormiu 1 terço da sua vida, ou seja, 25 anos. Cara... 25 ANOS DORMINDO !!! Se você tem menos de 25 anos, simplesmente você vai dormir mais do que viveu até hoje!!! Pense nisso... e durma menos.

#9 Rehzus

Rehzus

    Normal

  • Usuários
  • 98 posts
  • Sexo:Não informado

Posted 17/05/2005, 12:55

Alex, não foi desse jeito que citei....

Foi assim:
var meuLink=document.getElementById(id');
var textoLink=meuLink.childNodes[0];

Repare a diferença...
Voce fez assim:
document.getElementsById('botao').childNodes[0];
Essa linha sua nada mais faz do que retornar o primeiro nó filho do elemento 'botao'...
Que supostamente seria a parte textual do link....

Para você entender melhor sobre a situação pensemos numa estrutura de dados em árvore que representa fielmente um arquivo html.

>>>> Vamos supor que dentro do seu link 'botao' vc tenha um texto, uma imagem e um elemento span:
<a href="javascript:envia()" id="botao">
	Teste 1
	<img src="teste.gif" width="20" height="20" alt="" title="" />
	<span>Teste 2</span>
</a>

A suposta representação em arvore do código acima:


........................|------------------|
........................|...link 'botao'...|
........................|------------------|
..................................|
........|-------------------------|------------------------|
|------------------|....|--------------------|...|------------------|
|......Teste 1.....|....|........<img>.......|...|......<span>......|
|------------------|....|--------------------|...|------------------|
...........................................................|
.................................................|------------------|
.................................................|......Teste 2.....|
.................................................|------------------|


Quando vc faz:
var linkFilhos = documentgetElementById('botao').chilNodes;

Você está armazenando na variável linkFilhos um Object Collection, que nada mais é do que um vetor(array) que contém os descedentes de primeiro grau (filhos) em cada elemento desse vetor.
Supostamente seria assim:
linkFilhos[0] seria igual a um nó do tipo texto (string) = "Teste 1"
linkFilhos[1] seria igual a um nó de elemento (objeto) = elemento IMG
linkFilhos[2] seria igual a um nó de elemento (objeto) = elemento SPAN

Ok ok...com isso tudo vc teria que pegar esses 3 filhos e colocá-los fora do elemento A('botao')...
ai vc teria que criar por exemplo um <span> com um id='tal' e colocar esses 3 elementos dentro desse span...
Como?
Exemplo:
var objSpan = document.getElementById('tal');
for(var i=0;i<linkFilhos.length;i++)
{
	objSpan.appendChild(linkFilhos[i]);
}
// agora o que falta é substituir o SPAN pelo A('botao')
// é necessário que tanto o 'tal'(SPAN) como o 'botao' sejam filhos de um mesmo elemento pai
var objBotao = document.getElementById('botao');
objSpan.parentNode.replaceChild(objBotao,objSpan); //Substituindo um elemento pelo outro

Ok ok....Sugestão 1 FINALIZADA!

A outra que citei foi a seguinte:
var objLink = document.getElementById('id');
objLink.onclick = function () { return void(0); }

Essai ai também deve funcionar....Basta colocar esse código num bloco de JavaScript qualquer e pronto...
Isso nada mais vai fazer do que quando um usuário clicar...o link não fará nada...

OBS.: vale lembrar que tudo isso seria inócuo caso o usuário desabilitasse o javascript do navegador dele...
ainda podendo fazer inclusão no banco de dados várias vezes...
Por isso recomendo que você faça uma validação server-side.

:D

Não hesite em perguntar sobre tudo isso...
basta eu ter tempo pra responder...
::Obrigado pela dúvida


OBS PARA OS MODERADORES E PRESIDENTE DO FORUM:
Po que sacanagem heim....eu acho que vocês deveriam colocar para que
o script do fórum preservasse os espaços em brancos...
Pelo menos na "tag" ...
"A imaginação é muito mais importante que o conhecimento" (Albert Einstein)

#10 Alexx Ares

Alexx Ares

    Doutor

  • Usuários
  • 921 posts
  • Sexo:Masculino
  • Localidade:Santos - SP

Posted 19/05/2005, 19:22

Caramba.. explicou mesmo hein!!!

Valeu! Mas deve ter algo que estou fazendo errado... e outra, o script é dinamico.. tem um monte de dependencias... vou ver o que consigo fazer e voltao aqui se não der certo...

Mas já valeu, agora sei como funciona o childNodes.

:lol: (y)
||| PENSE NISSO ||| O ser humano, dizem, deve dormir 8 horas por dia. Isso equivale a 1 terço do seu dia dormindo. Agora imagine a seguinte situação: você, com 75 anos, prestes a morrer, olha para trás e percebe que dormiu 1 terço da sua vida, ou seja, 25 anos. Cara... 25 ANOS DORMINDO !!! Se você tem menos de 25 anos, simplesmente você vai dormir mais do que viveu até hoje!!! Pense nisso... e durma menos.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq