Foros del Web » Programando para Internet » Javascript »

js genera html - link pop-up

Estas en el tema de js genera html - link pop-up en el foro de Javascript en Foros del Web. Hola Estoy modificando un js hecho por otra persona. Hsy 3 js que generan menús dentro del html. Lo que necesito hacer es que algunos ...
  #1 (permalink)  
Antiguo 30/09/2003, 16:09
Avatar de hucasys  
Fecha de Ingreso: noviembre-2001
Ubicación: Bastante buena...
Mensajes: 816
Antigüedad: 22 años, 5 meses
Puntos: 3
Exclamación js genera html - link pop-up

Hola
Estoy modificando un js hecho por otra persona.

Hsy 3 js que generan menús dentro del html.

Lo que necesito hacer es que algunos de ésos links se abran en un pop-up.

1 de los js se llama 'codigo' y define lo siguiente:

[CODE]function w(w1){document.write(w1)};
if (window != window.top) top.location.href = location.href;
c1='<a ';
c2='href="http://';
c3='www.philips.cl/';
c4='artephilips/';
c5='</a>'
c6='"';
c7=' target=_blank ';
c8=' ';
c9=c8+c8;
c0=c9+c9;
c10=c5+c0;
c11=c5+c9+'|'+c9
c12=' target=_self ';
c13='global/';
d1=// AQUI QUIERO DEFINIR EL POP-UP
m=c1+c2;
m0=m+c3;
m1=m0+c4;
m2=c5+'<br>'
m30='<div class="';
m3=m30+'line2px"><br></div>';
m6='</div>';
m7='<br>';
m8='</td></tr></table>';
m9=m1+c6+c12+'>Home'+c5
m10=m0+c13;
// image maps
w('<map name="top-img">');
w('<area shape="rect" coords="10,6,108,24"'+c2+c3+c6+c7+' alt="Philips Chile">');
w('</map>');
// date script
var mydate=new Date(); var year=mydate.getYear();
if (year < 1000) {year+=1900}
var day=mydate.getDay();
var month=mydate.getMonth();
var daym=mydate.getDate();
if (daym<10) {daym="0"+daym}
var dayarray=new Array("Domingo","Lunes","Martes","Miércoles","Juev es","Viernes","Sabado");
var montharray=new Array("Enero","Febrero","Marzo","Abril","Mayo","Ju nio","Julio","Agosto","Septiembre","Octubre","Novi embre","Diciembre");
function agregar(){
if ((navigator.appName=="Microsoft Internet Explorer") &&
(parseInt(navigator.appVersion)>=4)) {
var url="http://www.artephilips.cl";
var titulo="ArtePhilips";
window.external.AddFavorite(url,titulo); }
else {if(navigator.appName == "Netscape")
alert ("Presione Crtl+D para agregar este sitio en sus Bookmarks");}
}CODE]

El 2 js escribe el html, así:

Código:
w('<table class="menu-table"><tr><td>'+m3+'<div class="menu-font">')
w(m1+'index_educacion.htm"'+c7+'>Especial Educación'+m2);
w(m1+'indices/autores.htm">&Iacute;ndice de Autores'+m2);
w(m1+'indices/obras.htm">&Iacute;ndice de obras'+m2);
w(m1+'indices/terminos.htm">T&eacute;rminos'+m2);
w(m1+'especial/">Especiales'+m2);
w(m1+'entrevistas/">Entrevistas'+m2);
w(m1+'calendario/coleccion/">Calendario Philips'+m2);
w(m1+'visitas/"'+c7+'>Visitas Guiadas'+m2);
w(m1+'exposicion_virtual/public_html/"'+c7+'>Expo Virtual'+m2);
w(m1+'expo_digital/"'+c7+'>Expo Digital'+m2);
w(m7+m3+m3+m3);
w(m1+d1+m2);
w(m1+'directorio/">Gu&iacute;a Cultural'+m2);
w(m1+'actividades/">Philips en la Cultura'+m2);
w(m1+'toma tu la foto/index.htm"'+c7+'>Toma Tú la foto'+m2);
w(m7+m7+m3);
w(m1+'download/">Para tu pantalla'+m2);
w(m1+'app/postales/">Tarjetas Digitales'+m2);
w(m7+m3+m3+m3+m3);
w(m1+'info/objetivos.htm">Objetivos'+m2);
w(m1+'info/fichatecnica.htm">Ficha T&eacute;cnica'+m2);
w(m1+'app/correo.asp">Contactos'+m2);
w(m7+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3+m3);
w(m1+'app/newsletter.asp">Novedades en Artephilips'+m2);
w(m7+m7+m7+m7+m7+m7+m7+m7+m7+m6+m8);
Cómo y dónde debo definir el pop-up y cómo debe escribir el js mi link para que abra el pop-up?

Sé que es harto, sólo cuento con vuestra buena voluntad para guiarme.....

GRACIAS
__________________
La manera en que resuelves el problema, es el problema.
ROBERT FRIPP
  #2 (permalink)  
Antiguo 02/10/2003, 09:58
Avatar de hucasys  
Fecha de Ingreso: noviembre-2001
Ubicación: Bastante buena...
Mensajes: 816
Antigüedad: 22 años, 5 meses
Puntos: 3
La verdad es que yo de js sé muy poco, cosas básicas, sin embargo, creo no equivocarme en decir que éste es un script muy cerrado. Se dá vueltas sobre sí mismo, y el problema principal, es que, como en este caso, si necesitamos agrgar funcionalidades, no es fácil hacerlo sin el autor original. Ojalá los más expertos pudiesen darme su opinión respecto a la "calidad" del código, es un buen js?

No sé porqué hay empresas que no entienden razonamientos básicos respecto de cómo trabajar colaborativamente en la mantención de un sitio web.

Saludos.
__________________
La manera en que resuelves el problema, es el problema.
ROBERT FRIPP
  #3 (permalink)  
Antiguo 02/10/2003, 10:06
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola hucasys.

El que hizo ese script seguro pasó un par de horas haciendolo y veinte tratando de que nadie mas lo entendiera. Mi consejo es que trates de pasar tu tus propias dos horas (o las que te tome) haciendolo de nuevo y no veinte tratando de entender lo que el hizo.

Suerte.
  #4 (permalink)  
Antiguo 02/10/2003, 11:01
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61


Jejeje! Muy buena observación, Kao!
Jugando un poco con el reemplazar del Homesite he logrado descifrar el segundo js. Sería algo así:


Código:
document.write('<table class="menu-table"><tr><td>'+'<div class="'+'line2px"><br></div>+'<div class="menu-font">')
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'index_educacion.htm"'+' target=_blank '+'>Especial Educación'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'indices/autores.htm">Índice de Autores'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'indices/obras.htm">Índice de obras'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'indices/terminos.htm">Términos'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'especial/">Especiales'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'entrevistas/">Entrevistas'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'calendario/coleccion/">Calendario Philips'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'visitas/"'+' target=_blank '+'>Visitas Guiadas'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'exposicion_virtual/public_html/"'+' target=_blank '+'>Expo Virtual'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'expo_digital/"'+' target=_blank '+'>Expo Digital'+'</a>'+'<br>');
document.write('<br>'+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>);
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+d1+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'directorio/">Guía Cultural'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'actividades/">Philips en la Cultura'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'toma tu la foto/index.htm"'+' target=_blank '+'>Toma Tú la foto'+'</a>'+'<br>');
document.write('<br>'+'<br>'+'<div class="'+'line2px"><br></div>);
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'download/">Para tu pantalla'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'app/postales/">Tarjetas Digitales'+'</a>'+'<br>');
document.write('<br>'+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>);
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'info/objetivos.htm">Objetivos'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'info/fichatecnica.htm">Ficha Técnica'+'</a>'+'<br>');
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'app/correo.asp">Contactos'+'</a>'+'<br>');
 document.write('<br>'+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+
 '<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>
 +'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<a '+'href="http://'
3+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>+'<div class="'+'line2px"><br></div>);
document.write('<a '+'href="http://'+'www.philips.cl/'+'artephilips/'+'app/newsletter.asp">Novedades en Artephilips'+'</a>'+'<br>');
document.write('<br>'+'<br>'+'<br>'+'<br>'+'<br>'+'<br>'+'<br>'+'<br>'+'<br>'+'</div>'+'</td></tr></table>');
Y dinos, cómo quieres el menú? tal vez podamos ayudarte...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 02/10/2003, 11:18
Avatar de hucasys  
Fecha de Ingreso: noviembre-2001
Ubicación: Bastante buena...
Mensajes: 816
Antigüedad: 22 años, 5 meses
Puntos: 3
Desacuerdo

Estimadísimos cyberamigos:

Trabajé durante 1 año como webmaster del sitio. Finalmente renuncié precisamente por tener que lidiar con un espécimen como el que pueden deducir a través del código que les presenté.
Lo malo, es que tiene influencia, y lo peor de todo es que la ejerce sólo para mantenerse a sí mismo dentro del proyecto, con artimañas, como por ejemplo la de armar códigos esquizofrénicamente encryptados como este, poco funcionales, pero que lo hacen "indispensable" a él.

Como la diseñadora que sigue allí la llevé yo, me siento en el deber de ayudarle, claro que previo trato con mi ex-boss para que me pague por ello.

La idea era algo rápido para salir del paso y presentar un diseño nuevo que ya estaba en plazo. Me avergûenza un tanto la solución que usé (un link _blank a una página vacía cuyo único contenido es un window.open mediante onLoad que finalmente abre la ventana deseada al tamaño deseado. Ya dije, es vergonzoso pero funciona por ahora en opera7 mozilla y explorer 6.

La ventana es de 670 x 450, y como me parece que todos somos inquietos y con esa "insaciable necesidad de conocimiento", si pueden mostrarme cómo sería, y si quieren, espero vuestra respuesta.

PD: otro día podemos comentar el hecho de que una página creada así mediante archivos externos js, no será indexada por googlebot , que no seguirá sus links.

saludos
__________________
La manera en que resuelves el problema, es el problema.
ROBERT FRIPP
  #6 (permalink)  
Antiguo 02/10/2003, 12:59
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola hucasys.

En lo personal creo que quien se dedica tanto tiempo a evitar que los demás entiendan su código es porque en el fondo se averguenza de el. Si ese individuo quiere hacerse imprescindible en la empresa haciendo que nadie pueda entender lo que hace, esta perjudicando a la empresa. Yo no creo que donde trabajas necesiten a un master en criptografía, lo mas probable es que necesiten de un programador, y ese individuo si usa su habilidad solo para criptografiar, cuando menos, está malbaratando el tiempo y el dinero de la compañía.

Menos mal que el arqueólogo KarlanKas te pudo ayudar.

Saludos a ambos.
  #7 (permalink)  
Antiguo 02/10/2003, 16:50
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Es que no es más que un menú mondo y lirondo
hecho con <A HREF> y con capas... no tiene nada. Lo mejor es quitar
todo ese código basura y poner las etiquetas a mano... cargará la página
mucho más rápido y será mucho más claro.

Gente enferma mental la hay en todas partes, pero si esa enfermedad
perjudica a los demás por el bien del enfermo y de la sociedad en general
se le debería encerrar y exigir que desencripte sus códigos...

Estoy completamente de acuerdo (como no podría ser de otra forma)
con Kao!!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 02/10/2003, 17:00
Avatar de hucasys  
Fecha de Ingreso: noviembre-2001
Ubicación: Bastante buena...
Mensajes: 816
Antigüedad: 22 años, 5 meses
Puntos: 3
Acuerdo

Ok masters, estamos de acuerdo. De todas maneras, menos mal, que ya no sigo en ése cuento, esto fue sólo algo puntual para ayudar al diseñadora a mostrar su trabajo.

A la sentencia la agregaría una camisa de fuerza, una vez desencriptado el código, y mantenerse a no menos de un perímetro de 100 km de las personas que quieren trabajar como se debe, aprender y mejorar las cosas.

Saludos!
__________________
La manera en que resuelves el problema, es el problema.
ROBERT FRIPP
  #9 (permalink)  
Antiguo 03/10/2003, 09:52
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Yo creo que la peor penitencia que se le podría poner a él, es alterarle una de sus líneas y obligarlo a que consiga el error.

Saludos.
  #10 (permalink)  
Antiguo 03/10/2003, 10:57
Avatar de hucasys  
Fecha de Ingreso: noviembre-2001
Ubicación: Bastante buena...
Mensajes: 816
Antigüedad: 22 años, 5 meses
Puntos: 3
No es mala idea Kao, el problema es que ahora sube los archivos la diseñadora, y sería raro que yo le pidiera que subiese algún cambio en el código ahora. Ella sabe que el tipo está loco, pero sería complicarle la vida a ella también.

:(

saludos
__________________
La manera en que resuelves el problema, es el problema.
ROBERT FRIPP
  #11 (permalink)  
Antiguo 03/10/2003, 11:02
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Lo decía en broma compadre, yo no recomendaría seriamente a nadie sabotear una página que deba ser publicada, hablaba de ponerle una penitencia como se la pondría a un alumno en clases.

Suerte.
  #12 (permalink)  
Antiguo 03/10/2003, 11:08
Avatar de hucasys  
Fecha de Ingreso: noviembre-2001
Ubicación: Bastante buena...
Mensajes: 816
Antigüedad: 22 años, 5 meses
Puntos: 3
Aaaaaahhhhh!!!!!

__________________
La manera en que resuelves el problema, es el problema.
ROBERT FRIPP
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 02:04.