Ver Mensaje Individual
  #6 (permalink)  
Antiguo 03/09/2005, 12:20
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Me queda una duda. Vale, para insertar un nodo antes, insertBefore. Para insertarlo despues?

Buscaba un insertAfter.. y lo encontre por google:
Código PHP:
function insertAfter(parentnodereferenceNode) {
    
parent.insertBefore(nodereferenceNode.nextSibling);

Asi ya queda mi ejemplo completo por fin!:

Código PHP:
<a href="a.htm">enlace</atexto texto texto 
<a href="s.html">otro enlace</amas texto 
<a href="i.htm">y otro</ay se acaba aqui

<
script

function 
insertAfter(parentnodereferenceNode) {
    
parent.insertBefore(nodereferenceNode.nextSibling);
}

var As=
document.getElementsByTagName("A"); 
var 
corchete1,corchete2;
for(var 
a=0;a<As.length;a++) { 
    As[
a].onmouseover=function() { 
        
corchete1=document.createTextNode("[");
        
corchete2=document.createTextNode("]");
        
this.parentNode.insertBeforecorchete1 this);
        
insertAfterthis.parentNodecorchete2this );
    } 
    As[
a].onmouseout=function() { 
        
corchete1.removeNode();
        
corchete2.removeNode();
    } 
}

</script> 
Y si lo hacemos más estético:

Código PHP:
<head>

<
style>
.
corchetes {
    
color#000; 
    
text-decoration:none
    
width:3px
    
visibility:hidden
    
display:inline;
}
</
style>

</
head>

<
body>


<
a href="a.htm">enlace</atexto texto texto 
<a href="s.html">otro enlace</amas texto 
<a href="i.htm">y otro</ay se acaba aqui

<
script

function 
insertAfter(parentnodereferenceNode) {
    
parent.insertBefore(nodereferenceNode.nextSibling);
}

var As=
document.getElementsByTagName("A"); 
var 
corchete1,corchete2;
for(var 
a=0;a<As.length;a++) {
    
corchete1=document.createElement("DIV");
    
corchete2=document.createElement("DIV");
    
corchete1.appendChilddocument.createTextNode("[") );
    
corchete2.appendChilddocument.createTextNode("]") );
    
corchete1.className=corchete2.className="corchetes";
    As[
a].parentNode.insertBeforecorchete1 , As[a] );
    
insertAfter( As[a].parentNodecorchete2, As[a] );
    As[
a].onmouseover=function() { 
        
this.previousSibling.style.visibility="visible";
        
this.nextSibling.style.visibility="visible";
    }
    As[
a].onmouseout=function() { 
        
this.previousSibling.style.visibility="hidden";
        
this.nextSibling.style.visibility="hidden";
    }
}

</script>


</body> 
Ya tenemos sustituto para
Código:
a:hover:before {content: "["}
a:hover:after{content:"]"}
sobre IE...


Una ultima pijada poniendome tiquismiquis. Si el enlace tiene texto alrededor, nos podemos dar cuenta que antes y despues del enlace hay como doble espaciado. esto es por que se junta el espacio y el div oculto.

No es que quede feo, ya es solo por curiosidad. ¿Se podria eliminar el espacio (si existiera) de antes y despues de todos los enlaces?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.