Foros del Web » Programando para Internet » Javascript »

se puede convertir texto a link asi???

Estas en el tema de se puede convertir texto a link asi??? en el foro de Javascript en Foros del Web. esta pregunta es para alguien que sepa mucho de javascript. estoy tratando de convertir texto enlink para que la gente que entre a mi pequeno ...
  #1 (permalink)  
Antiguo 02/10/2006, 14:59
 
Fecha de Ingreso: febrero-2004
Ubicación: argentina
Mensajes: 203
Antigüedad: 20 años, 2 meses
Puntos: 0
se puede convertir texto a link asi???

esta pregunta es para alguien que sepa mucho de javascript.
estoy tratando de convertir texto enlink para que la gente que entre a mi pequeno foro pueda dejar direciones ,etc, despues de mucho investigar y provar modificando codigos y uniendo codigos y provando con la srt_replace, como no me funcionaba nada de nada, al codigo que estaba modificando (mejor dicho destripando por que no funcionaba) solo

le cambie esto:

url="[ a]"+url+"[ /a]";

por esto:

url=('<a href="' + url + '" target="_blank">' + url + '</a>');


y para el link de mail le agregue esto:

case "email":
email = prompt("email de el Enlace", "");
if(email) {
email=('<a href="mailto:' + email + '">' + email + '</a>');
meter(email);
}
break;

y funciono y no nececite usar srt_replace ni nada , el mensaje con los links se almasenan en una base de datos y los links se muestra y funciona de maravilla, incluso el mail abre el outlook.

lo que quiero saber es si es correcto convertir un texto en un link asi , que sera almacenado en una base de datos ,para luego ser mostrado en una pagina web?

o sera que esto puede causar algun incomveniente futuro?

por si acaso aca dejo el codigo completo para que lo vean:

<HTML><HEAD>
</HEAD>
<BODY>
<SCRIPT language=Javascript type=text/javascript>
function storeCaret(text) {
if (text.createTextRange) {
text.caretPos = document.selection.createRange().duplicate();
}
}

function meter(text) {
var postopic = document.PostTopic.Message;
if (postopic.createTextRange && postopic.caretPos) {
var caretPos = postopic.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?

text + ' ' : text;
}
else postopic.value += text;
postopic.focus(caretPos)
}

function codigo(accion) {
switch(accion) {
case "url":
url = prompt("URL de el Enlace", "http://");
if(url) {
url=('<a href="' + url + '">' + url + '</a>');
meter(url);
}
break;

case "email":
email = prompt("email de el Enlace", "");
if(email) {
email=('<a href="mailto:' + email + '">' + email + '</a>');
meter(email);
}
break;


default:
meter(accion);
break;
}
}
</SCRIPT>

<FORM name=PostTopic action="opinar.php" method="post">

Mensaje:
<TEXTAREA

onclick=javascript:storeCaret(this); name=Message rows=10 wrap=VIRTUAL cols=45 onchange=javascript:storeCaret(this);> </TEXTAREA>

<A href="javascript:codigo('url')">Enlace</A>
<A href="javascript:codigo('email')">email</A>
<input type="submit" value="enviar">
</FORM>
</BODY>
</HTML>

en la textarea del formulario el lin aparece asi:

<a href="http://www.miamersur.com">http://www.miamersur.com</a>


aclaro que yo no se javascript y el scrip que puse no es mio , yo solo le agregue lo que puse arriba para que me funcione, solo qu no se si es correcto...mmm... o puede causar algunproblema en mi pagina web. agradezco la ayuda ,saludos!!
  #2 (permalink)  
Antiguo 02/10/2006, 18:11
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Lo que va a la BD es texto inofensivo que se convierte en enlaces cuando lo procesa un navegador...

Por cierto, con javascript existe el método link de las cadenas que crean el código del enlace...

var email = "envíame un e-mail".link("mailto:[email protected]ón");

Otra cosilla: El sistema que tienes solo funciona en explorer...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 14:35.