Foros del Web » Programando para Internet » Javascript »

Desactivar enlace

Estas en el tema de Desactivar enlace en el foro de Javascript en Foros del Web. Si no recuerdo mal me parece haber visto un script en algun lado, (no se en donde) que servia para desactivar el enlace de la ...
  #1 (permalink)  
Antiguo 25/05/2004, 13:16
 
Fecha de Ingreso: septiembre-2003
Ubicación: Hispania
Mensajes: 56
Antigüedad: 21 años, 6 meses
Puntos: 0
Pregunta Desactivar enlace

Si no recuerdo mal me parece haber visto un script en algun lado, (no se en donde) que servia para desactivar el enlace de la pagina actual.

Me explico, en una pagina con varios enlaces (incluido el de la pagina que estamos viendo), que este aparezca desactivado.

Bueno no se si me he explicado, espero que me entendais.

El tema es si alguien efectivamente conoce ese script o como se hace, me anda en la cabeza que es algo muy facil, pero no lo se.

Bueno, nada mas. Un saludo al foro.

__________________
Dos cosas me admiran: la inteligencia de las bestias y la bestialidad de los hombres,
  #2 (permalink)  
Antiguo 25/05/2004, 14:05
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años, 2 meses
Puntos: 61
Bueno pues creo que esto lo consigue. Sólo lo he probado con el IE 6.0 y funciona. Pero sólo con los enlaces que sean exactamente iguales que la página en la que se esté. Si quieres que sea más permisivo dilo y lo adaptamos.

Un saludo!


Código PHP:
<html>
<
head>
    <
title>Untitled</title>
    <
script>
    
    function 
inicio(){
        for(
a=0;a<document.links.length;a++){
            if(
document.links[a].href==document.location.href){
                
document.links[a].outerHTML=document.links[a].innerHTML;
            }
        }
    
    }
    
</script>
</head>

<body onload="inicio()">
<a href="qwqw.html">pepito</a>


</body>
</html> 


A parte del IE sólo funciona en Opera. El motivo es que no entienden el resto el outerHTML...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 26/05/2004 a las 00:19
  #3 (permalink)  
Antiguo 25/05/2004, 14:18
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años, 2 meses
Puntos: 61
Una opción sería esta, pero no quita la manita:
Código PHP:
<html>
<
head>
    <
title>Untitled</title>
    <
script>
    
    function 
inicio(){
        for(
a=0;a<document.links.length;a++){

            if(
document.links[a].href==document.location.href){
                
document.links[a].href="javascript:return false";
            }
        }
    
    }
    
</script>
</head>

<body onload="inicio()">
<a href="qwqw.html">pepito</a>


</body>
</html> 
Claro, que podemos engañar al visitante:
Código PHP:
<html>
<
head>
    <
title>Untitled</title>
    <
style>
    .
deshabilitado{
    
text-decoration:none;
    
cursor:default;
    
color:black;
    }
    </
style>
    <
script>
    
    function 
inicio(){
        for(
a=0;a<document.links.length;a++){

            if(
document.links[a].href==document.location.href){
                
document.links[a].href="javascript:return false";
                
document.links[a].className="deshabilitado";

                
            }
        }
    
    }
    
</script>
</head>

<body onload="inicio()">
<a href="qwqw.html">pepito</a>


</body>
</html> 
Se me olvidó decirte que para que funcione tienes que probarlo a través de un servidor, es decir, que lo subas al servidor antes de probarlo, o si tienes un servidor web en tu equipo (apache, pws, iis...) lo pases por él para verlo.

Para probar este ejemplo guarda este código en una página con nombre qwqw.html
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 25/05/2004 a las 14:28
  #4 (permalink)  
Antiguo 25/05/2004, 22:27
 
Fecha de Ingreso: septiembre-2003
Ubicación: Hispania
Mensajes: 56
Antigüedad: 21 años, 6 meses
Puntos: 0
Bien, despues de haber probado los tres ejemplos que has puesto, el unico que me funciona correctamente es el primero en el que utilizas outerHTML, aunque funcione solo en Opera mas vale algo que nada.
Lo que si he probado es a poner una etiqueta de estilos (concretamente lo que me interesa es que el enlace deshabilitado se quede de color rojo), y lo llamo con classname pero en ese momento ya deja funcionar correctamente.
Esto es una paginacion donde se ve el nº de paginas y era lo que queria que en la pagina que se este viendo el enlace quedara desactivado y de color rojo, vamos que resaltara sobre los demás

Gracias y un saludo.
__________________
Dos cosas me admiran: la inteligencia de las bestias y la bestialidad de los hombres,
  #5 (permalink)  
Antiguo 26/05/2004, 00:09
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años, 2 meses
Puntos: 61
cambia esta linea:

document.links[a].outerHTML=document.links[a].innerHTML;

por esto:

document.links[a].outerHTML="<span style='color:red'>"+document.links[a].innerHTML+"</span>";

En cualquier caso creo que sería más sencillo hacerlo en el servidor (ASP o PHP o JSP...) con un simple if.

Y no seas tan serio, hombre!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 26/05/2004 a las 00:18
  #6 (permalink)  
Antiguo 26/05/2004, 09:03
 
Fecha de Ingreso: septiembre-2003
Ubicación: Hispania
Mensajes: 56
Antigüedad: 21 años, 6 meses
Puntos: 0
Bien ahora funciona perfecto, en cuanto a lo del lenguaje del lado del servidor tienes razon ya que en realidad la pagina es en PHP


Trataré de hacerlo en PHP (aunque si tengo dificultades con JS, con PHP ni te cuento), de todas formas ya habia pensado en la posibilidad del "if". De hecho la paginacion esta hecha con un bucle "for", lo que no se es si se puede poner un condicional "if" dentro del bucle, bueno preguntaré en el foro de PHP.

Muchas gracias por la ayuda, un saludo.


Ahhh, lo de serio por que va? en la austeridad y la presentacion de mis mensajes ó en la forma de redactarlos.
__________________
Dos cosas me admiran: la inteligencia de las bestias y la bestialidad de los hombres,
  #7 (permalink)  
Antiguo 26/05/2004, 09:05
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años, 2 meses
Puntos: 61
mmmm... creo que por la forma de redactarlo. Pero no pasa nada
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 26/05/2004, 09:09
 
Fecha de Ingreso: septiembre-2003
Ubicación: Hispania
Mensajes: 56
Antigüedad: 21 años, 6 meses
Puntos: 0
Bien, bien trataré de ser mas desenfadado en la redacción aunque creo que cada uno tiene su estilo, lo intentaré.
__________________
Dos cosas me admiran: la inteligencia de las bestias y la bestialidad de los hombres,
  #9 (permalink)  
Antiguo 26/05/2004, 09:42
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años, 2 meses
Puntos: 61
No le des vueltas, hombre! que no pasa nada!

Sé como eres!!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:42.