Como modificar todos los enlaces hacia webs externas en mi web

Iniciado por motocros_elche, 12 Junio 2011, 02:15 AM

0 Miembros y 1 Visitante están viendo este tema.

bomba1990

Cita de: lnvisible en 12 Junio 2011, 23:06 PM
Puedes hacer un preg_replace, cuando guardas los enlaces o cuando los recuperas.

Cita de: Shell Root en 13 Junio 2011, 06:47 AM
jajajajajjaa, intentad hacerlo como tu quieres, se nota que lo probaste...  :silbar:

Si notas lo siguiente, estoy haciendo una condición de donde pueden estar los links, sin afectar todos.
Código (javascript) [Seleccionar]
$("#data a").click(function(){

Es decir, en el div con id data, buscar los a href. En tu caso debería ser,
Código (javascript) [Seleccionar]
$("#a").click(function(){

puedes usar lo que los dos te dijeron, haces un
$('a').click(function(event){
   if(isUrl(this.href)){
      windows.location='http://miweb.com/enlaces.php?page='+this.href;
      event.preventDefault;
   }
});


function isUrl(s) {
   var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
   return regexp.test(s);
}

asi si el click donde se hace click pues redirigira a la pagina que tu quieres.

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

motocros_elche

Cita de: Shell Root en 13 Junio 2011, 06:47 AM
jajajajajjaa, intentad hacerlo como tu quieres, se nota que lo probaste...  :silbar:

Si notas lo siguiente, estoy haciendo una condición de donde pueden estar los links, sin afectar todos.
Código (javascript) [Seleccionar]
$("#data a").click(function(){

Es decir, en el div con id data, buscar los a href. En tu caso debería ser,
Código (javascript) [Seleccionar]
$("#a").click(function(){
Pues me parece que no añade nada... probe también con lo de link1.html pero modificando data a por a
y me aparecen los enlaces igual... no se les añade nada =S
aquí un ejemplo por si hay algo que falta:

<html>
<head>
<script src="JQuery.js" language="javascript" type="text/javascript"></script>
     <script language="javascript">
function agregarHREF(){
  $("#a").click(function(){
     this.href = "http://google.com/?PoC="+this.href;
  });
}
$(document).ready(agregarHREF);
     </script>
</head>
  <body>
  <p><a href="http://google.es/ig">Descarga1</a></p>
  <p><a href="http://google.es">Descarga2</a></p>
  </body>
</html>

bomba1990

es que par que se pueda modificar el enlace deberias hacer asi, $('a').each(function(){}); y entonces eso hara un recorrido por cada enlace de tu pagina y lo modificara y lo pondra como quieres, porque $('a').click es solo un evento, no se ejecutara al cargar al docuemnto sino cuando hagan click en el enlace.
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

motocros_elche

Cita de: bomba1990 en 13 Junio 2011, 16:23 PM
es que par que se pueda modificar el enlace deberias hacer asi, $('a').each(function(){}); y entonces eso hara un recorrido por cada enlace de tu pagina y lo modificara y lo pondra como quieres, porque $('a').click es solo un evento, no se ejecutara al cargar al docuemnto sino cuando hagan click en el enlace.
Nada, sigue =

¿Algún profesor en la sala que me corrija?

<html>
<head>
<script src="JQuery.js" language="javascript" type="text/javascript"></script>
      <script language="javascript">
function agregarHREF(){
$('a').each(function(){
      this.href = "http://google.com/?PoC="+this.href;
   });
}
$(document).ready(agregarHREF);
      </script>
</head>
   <body>
   <p><a href="http://google.es/ig">Descarga1</a></p>
   <p><a href="http://google.es">Descarga2</a></p>
   </body>
</html>

bomba1990

Este funciona a la perfeccion

Código (javascript) [Seleccionar]
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" language="javascript" type="text/javascript"></script>
      <script language="javascript">
$(document).ready(function(){
$('a').each(function(){
      $(this).attr('href',"http://google.com/?PoC="+$(this).attr('href'));
   });
});
      </script>
</head>
   <body>
   <p><a href="http://google.es/ig">Descarga1</a></p>
   <p><a href="http://google.es">Descarga2</a></p>
   </body>
</html>
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

motocros_elche

Cita de: bomba1990 en 13 Junio 2011, 17:32 PM
Este funciona a la perfeccion

Código (javascript) [Seleccionar]
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" language="javascript" type="text/javascript"></script>
      <script language="javascript">
$(document).ready(function(){
$('a').each(function(){
      $(this).attr('href',"http://google.com/?PoC="+$(this).attr('href'));
   });
});
      </script>
</head>
   <body>
   <p><a href="http://google.es/ig">Descarga1</a></p>
   <p><a href="http://google.es">Descarga2</a></p>
   </body>
</html>

ok, ha funcionado, el problema ahora es, que solamente lo quiero para links hacia webs externas
todos los links empiezan por http://nombredeweb.com/file/

Muchas gracias de antemanoo =D

nota: disculpad por pediros tanto código, quizás se que me paso, pero en google no encontré mucho y tan solo necesitaba esto, =)

¡Saludos!

motocros_elche

Es posible hacer que solamente sea para los enlaces que empiecen por cierta dirección URL?

bomba1990

confiro chamo, no es por ser malo, pero piensa tambien tu un poquito estas pasado ya de comodo, unos mensajes atras puse una funcion que averiguaba si es una url completa, si modificas la expresion regular pues podras comprobar lo que quiereas si es de un sitio o otro, si es de tu sitio lo que sea, lo que necesitas es modificar la expresion url.

function isUrl(s) {
   var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
   return regexp.test(s);
}
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

motocros_elche

#18
Cita de: bomba1990 en 14 Junio 2011, 15:07 PM
confiro chamo, no es por ser malo, pero piensa tambien tu un poquito estas pasado ya de comodo, unos mensajes atras puse una funcion que averiguaba si es una url completa, si modificas la expresion regular pues podras comprobar lo que quiereas si es de un sitio o otro, si es de tu sitio lo que sea, lo que necesitas es modificar la expresion url.

function isUrl(s) {
  var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
  return regexp.test(s);
}
Y ¿donde introduzco ese código y que le modifico?
Disculpa mi ignorancia... -.-''

bomba1990

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" language="javascript" type="text/javascript"></script>
      <script language="javascript">
function isUrl(s) {
   var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
   return regexp.test(s);
}

$(document).ready(function(){
$('a').each(function(){
if(isUrl($(this).attr('href'))){
      $(this).attr('href',"http://google.es/ig">Descarga1</a></p>
   <p><a href="http://google.es">Descarga2</a></p>
   </body>
</html>

no lo e probado
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve