Foros del Web » Programando para Internet » Javascript »

Funcion para abrir vinculo en _blank

Estas en el tema de Funcion para abrir vinculo en _blank en el foro de Javascript en Foros del Web. Hola gente tengo un editor html que entre sus simples funciones contenidas en un solo archivo .js es la de generar enlaces http:// ... el ...
  #1 (permalink)  
Antiguo 11/11/2006, 16:36
 
Fecha de Ingreso: diciembre-2004
Mensajes: 103
Antigüedad: 19 años, 5 meses
Puntos: 0
Funcion para abrir vinculo en _blank

Hola gente tengo un editor html que entre sus simples funciones contenidas en un solo archivo .js es la de generar enlaces http:// ... el problema que me los abre en la misma pagina en vez de en una en blanco. Dejo el codigo y agradezco su ayuda.

Código:
  this.insertLink = function() {
if(IE) this.doCmd('createLink');
else {
var url = prompt('URL:', 'http://');
if(url && url != 'http://') this.doCmd('createLink', url);
}
}
  #2 (permalink)  
Antiguo 12/11/2006, 01:52
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:

Sin un editor es muy fácil:
<a href="destino.html" target="_blank" >enlace</a>

Si quieres hacerlo con un editor, deberías consultar en el foro de editores web.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 12/11/2006, 05:06
Avatar de BonRouge  
Fecha de Ingreso: noviembre-2006
Mensajes: 51
Antigüedad: 17 años, 5 meses
Puntos: 0
El atributo 'target' ha sido desaprobado por el W3C y no deberías usarlo. Si quieres una función para abrir una ventana nueva, aquí tienes:
Código:
function external(){
	var exlinks=document.getElementsByTagName('a');
	for (i=0; i<exlinks.length; i++) {
		if (exlinks[i].getAttribute('rel')=='external') {
			exlinks[i].onclick=function() {window.open(this.href,""); return false}
		}
	}
}
window.onload=external;
Solo hay que añadir 'rel="external"' en la etiqueta 'a'.

Última edición por BonRouge; 12/11/2006 a las 06:01
  #4 (permalink)  
Antiguo 12/11/2006, 08:13
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:

Bueno... la afirmación de "desaprobado..."
Hasta la versión xhtml 1.0 debía usarse con DTD transitional... pero el que tiene interés en abrir ventanas puede usar la versión html/xhtml que quiera... y al menos en html es totalmente válida.

También se pueden usar popups javascript.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 12/11/2006, 08:54
Avatar de BonRouge  
Fecha de Ingreso: noviembre-2006
Mensajes: 51
Antigüedad: 17 años, 5 meses
Puntos: 0
Sí, es válida, pero es el pasado.

La introducción al DTD 'transitional' dice...
Cita:
Este es el DTD Transicional de HTML 4.01, que incluye los atributos
y elementos de presentación que el W3C espera que dejen de utilizarse
a medida que madure el soporte de las hojas de estilo. Los autores
deberían usar el DTD Estricto siempre que sea posible
, pero pueden
usar el DTD Transicional si es necesario el soporte de atributos
y elementos de presentación.
  #6 (permalink)  
Antiguo 12/11/2006, 09:24
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por BonRouge Ver Mensaje
Sí, es válida, pero es el pasado.

La introducción al DTD 'transitional' dice...

Los autores
deberían usar el DTD Estricto siempre que sea posible
...
Hola:

Con respecto a tu otra afirmación del uso de rel="external"... viendo el código que planteas, no es ningún indicador de abrir ventanas en blanco... incluso veo que se trata de una burda manera de usar el método open... sencillamente podría ponerse onclick="window.open(...); return false"... u "onclick="this.target = '_blank'",... en todos los casos se cambia el flujo normal de lectura de la página... que es realmente lo que importa en xhtml (y en las formas estrictas html)...

Si se quiere abrir una ventana que no corresponda a ese flujo, no es recomendable usar enlaces... simplemente botones (u otros elementos de la página) asociando al click la apertura de ventanas.

Bueno... es solo mi opinión...

Queda el tema abierto...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 12/11/2006, 09:44
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Cita:
Sí, es válida, pero es el pasado.
Si se quiere ser tan estricto no debería usarse tampoco un sustituto (o chapuza) que produce el efecto que la w3c quiso anular. De hecho, la anulación en sí me parece absurda.
Por mi parte, hay 2 cosas que por el momento no le perdono a la w3c:
la anulación del target y la ausencia de un sustituto eficaz para innerHTML.
  #8 (permalink)  
Antiguo 12/11/2006, 09:55
Avatar de BonRouge  
Fecha de Ingreso: noviembre-2006
Mensajes: 51
Antigüedad: 17 años, 5 meses
Puntos: 0
Cita:
Iniciado por caricatos Ver Mensaje
sencillamente podría ponerse onclick="window.open(...); return false"... u "onclick="this.target = '_blank'"
Eso es verdad, pero es mejor a no incluir javascript en las etiquetas html.

Cita:
Iniciado por caricatos Ver Mensaje
Si se quiere abrir una ventana que no corresponda a ese flujo, no es recomendable usar enlaces
¿Porqué no es recomendable? Un enlace es un enlace. Si quieres ir a otra página, se usa un enlace. Entiendo lo que dices - abriendo una segunda ventana podría ser algo especial y podrías usar un boton, pero creo que el hecho que es un enlace (que quieres ir a otra página) sea más importante aquí.

(Quizás no tengo razón pero es mi opinion).
  #9 (permalink)  
Antiguo 12/11/2006, 10:09
Avatar de BonRouge  
Fecha de Ingreso: noviembre-2006
Mensajes: 51
Antigüedad: 17 años, 5 meses
Puntos: 0
Cita:
Iniciado por Panino5001 Ver Mensaje
Si se quiere ser tan estricto no debería usarse tampoco un sustituto (o chapuza) que produce el efecto que la w3c quiso anular. De hecho, la anulación en sí me parece absurda.
Por mi parte, hay 2 cosas que por el momento no le perdono a la w3c:
la anulación del target y la ausencia de un sustituto eficaz para innerHTML.
HTML es como XML - dice lo que contiene la etiqueta. Además, los atributos dicen un poquito más sobre la información. 'rel="external"' dice solo que es un enlace a una página external. 'target="_blank"' es una acción. 'Acción' es (normalmente) el trabajo de javascript.

Sobre el tema de innerHTML, yo estoy de acuerdo contigo.
  #10 (permalink)  
Antiguo 12/11/2006, 11:45
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por BonRouge Ver Mensaje
Eso es verdad, pero es mejor a no incluir javascript en las etiquetas html.
...
Creo que en esta línea se está poniendo javascript en un tag "a":

Código:
exlinks[i].onclick=function() {window.open(this.href,""); return false}


Cita:
Iniciado por BonRouge Ver Mensaje
...

¿Porqué no es recomendable? Un enlace es un enlace. Si quieres ir a otra página, se usa un enlace....
Hay muchas páginas con enlaces que no tienen nada que ver con el contenido de la página, como publicidad, referencias, ayuda... (bueno, a veces pueden tener que ver, pero en otro contexto)
De todos modos, si se quiere enlazar a un popup, hay formas mejores... Formularios y enlaces dirigidos a ventanas

Cita:
Iniciado por BonRouge Ver Mensaje
...

(Quizás no tengo razón pero es mi opinion).
Eso está muy bien... yo también expongo mi opinión... si buscas un poco en los foros, podrás ver algunos mensajes sobre estos temas donde puedes ver distintas opiniones.

Por cierto, veo que eres nuevo en estos foros, así que "bienvenido"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #11 (permalink)  
Antiguo 12/11/2006, 12:08
Avatar de BonRouge  
Fecha de Ingreso: noviembre-2006
Mensajes: 51
Antigüedad: 17 años, 5 meses
Puntos: 0
Cita:
Iniciado por caricatos Ver Mensaje
Creo que en esta línea se está poniendo javascript en un tag "a":

Código:
exlinks[i].onclick=function() {window.open(this.href,""); return false}
Creo que no estoy poniendo nada en el tag 'a', no estoy tocando el html. La función se asocia con ese tag pero yo no he tocado el html.

Cita:
Iniciado por caricatos Ver Mensaje
Por cierto, veo que eres nuevo en estos foros, así que "bienvenido"
Gracias. Espero que puedo ayudar unas personas.

(Discúlpame por mi mal español - soy inglés).
  #12 (permalink)  
Antiguo 12/11/2006, 12:25
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por BonRouge Ver Mensaje
Creo que no estoy poniendo nada en el tag 'a', no estoy tocando el html. La función se asocia con ese tag pero yo no he tocado el html.
Eso en español se llama "salirse por la tangente..."
Al final debes usar un tag script (html) dentro del head o el body (también html)... también hay muchos scripts muy útiles que se ponen sin problemas y nunca he escuchado que estén mal (rollovers, tooltips, menús, etc...)

Cita:
Iniciado por BonRouge Ver Mensaje
(Discúlpame por mi mal español - soy inglés).
Veo que te defiendes muy bien... enhorabuena (congratulations)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #13 (permalink)  
Antiguo 12/11/2006, 21:46
Avatar de BonRouge  
Fecha de Ingreso: noviembre-2006
Mensajes: 51
Antigüedad: 17 años, 5 meses
Puntos: 0
Cita:
Iniciado por caricatos Ver Mensaje
Eso en español se llama "salirse por la tangente..."
Al final debes usar un tag script (html) dentro del head o el body (también html)... también hay muchos scripts muy útiles que se ponen sin problemas y nunca he escuchado que estén mal (rollovers, tooltips, menús, etc...)
Scripts no son un problema y no están mal, pero yo creo que sea mejor si se puede separarlos de los tags html que están el body. Es como CSS en que es mejor a separar el estilo de los tags html. En el caso de javascript, se llama 'unobtrusive' en inglés, o sea 'discreto'. Solo hay que cambiar el archivo .js. (Pues, no es exactamente la verdad en este caso porque hay que añadir el atributo 'rel', pero... ).
  #14 (permalink)  
Antiguo 13/11/2006, 03:15
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
;)

Código HTML:
<html>
<head>
<script type="text/javascript">
 function igiri_orri(url)
  {
    window.open(url);
  }
</script>
</head>
<body>
<a href="#" onclick="igiri_orri('http://www.google.es')">LINK</a>
</body>
</html> 
;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
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 17:46.