Foros del Web » Programando para Internet » Javascript »

Ayuda con IE

Estas en el tema de Ayuda con IE en el foro de Javascript en Foros del Web. Hola, tengo un problemita, he creado un script que genera campos y demás cosas pero no me funciona con IE ni sfari sólo con Firefox. ...
  #1 (permalink)  
Antiguo 10/10/2008, 13:35
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
Mensaje Ayuda con IE

Hola, tengo un problemita, he creado un script que genera campos y demás cosas pero no me funciona con IE ni sfari sólo con Firefox. He pensado en implementar document.all pero como no soy programador de javascript soy más de php prefiero me recomienden algo los gurus, de entrado muchas gracias.

Código javascript:
Ver original
  1. var numero = 0;
  2. t = function (tag) { // Crea un text
  3.    return document.createTextNode(tag);
  4. }
  5. c= function (tag) { // Crea un elemento
  6.    return document.createElement(tag);
  7. }
  8. d = function (id) { // Retorna un elemento en base al id
  9.    return document.getElementById(id);
  10. }
  11. e = function (evt) { // Retorna el evento
  12.    return (!evt) ? event : evt;
  13. }
  14. f = function (evt) { // Retorna el objeto que genera el evento
  15.    return evt.srcElement ?  evt.srcElement : evt.target;
  16. }
  17. addField = function () {
  18. //Contenedor div
  19. container = d('files');
  20. //Span para cada archivo
  21. span = c('SPAN');
  22. span.className = 'file';
  23. span.id = 'file' + (++numero);
  24. //Texto e input del file
  25. t_archivo = t('Archivo:');
  26.    field = c('INPUT');  
  27.    field.name = 'archivo[]';
  28.    field.type = 'file';
  29. //Link para eleminar
  30.    a = c('A');
  31.    a.name = span.id;
  32.    a.href = '#';
  33.    a.onclick = removeField;
  34.    a.innerHTML = 'Quitar el archivo #' + numero;
  35. //Select de tipo de papel
  36. t_tipo = t('Tipo de Papel:');  
  37.    tipopapel= c('select');  
  38.    tipopapel.name = 'tipopapel[]';
  39.    
  40.    t_option1 = c('option');  
  41.    t_option1.innerHTML= "";  
  42.    t_option1.value = '#';
  43.    tipopapel.appendChild(t_option1);
  44.    
  45.    t_option13 = c('option');  
  46.    t_option13.innerHTML= "Cartulina Sulfatada 1 Cara 12 pts.";  
  47.    t_option13.value = 'Cartulina Sulfatada 1 Cara 12 pts';
  48.    tipopapel.appendChild(t_option13);
  49.    
  50.       t_option14 = c('option');  
  51.    t_option14.innerHTML= "Cartulina Sulfatada 1 Cara 14 pts.";  
  52.    t_option14.value = 'Cartulina Sulfatada 1 Cara 14 pts';
  53.    tipopapel.appendChild(t_option14);
  54.    
  55.    t_option15 = c('option');  
  56.    t_option15.innerHTML= "Cartulina Sulfatada 2 Caras 12 pts.";  
  57.    t_option15.value = 'Cartulina Sulfatada 2 Caras 12 pts';
  58.    tipopapel.appendChild(t_option15);
  59.    
  60.    t_option16 = c('option');  
  61.    t_option16.innerHTML= "Albanene 140 gr.";  
  62.    t_option16.value = 'Albanene 140 gr';
  63.    tipopapel.appendChild(t_option16);
  64.    
  65.    t_option2 = c('option');
  66.    t_option2.innerHTML= "Opalina Blanca 120 gr";  
  67.    t_option2.value = 'Opalina 120 gr';
  68.    tipopapel.appendChild(t_option2);
  69.    
  70.    t_option11 = c('option');
  71.    t_option11.innerHTML= "Opalina Blanca 150 gr";  
  72.    t_option11.value = 'Opalina 150 gr';
  73.    tipopapel.appendChild(t_option11);
  74.    
  75.    t_option12 = c('option');
  76.    t_option12.innerHTML= "Opalina Blanca 225 gr";  
  77.    t_option12.value = 'Opalina 225 gr';
  78.    tipopapel.appendChild(t_option12);
  79.    
  80.    t_option3 = c('option');
  81.    t_option3.innerHTML= "Couche";  
  82.    t_option3.value = 'Couche';
  83.    tipopapel.appendChild(t_option3);
  84.    
  85.    t_option6 = c('option');
  86.    t_option6.innerHTML= "Bond Blanco 90 gr";  
  87.    t_option6.value = 'Bond 90 gr';
  88.    tipopapel.appendChild(t_option6);
  89.    
  90.    t_option7 = c('option');
  91.    t_option7.innerHTML= "Bond Blanco 120 gr";  
  92.    t_option7.value = 'Bond 120 gr';
  93.    tipopapel.appendChild(t_option7);
  94.    
  95.    t_option4 = c('option');
  96.    t_option4.innerHTML= "Couche Adhesivo Mate";  
  97.    t_option4.value = 'Couche Adhesivo Mate';
  98.    tipopapel.appendChild(t_option4);
  99.    
  100.    t_option5 = c('option');
  101.    t_option5.innerHTML= "Couche Adhesivo Satin";  
  102.    t_option5.value = 'Couche Adhesivo Satin';
  103.    tipopapel.appendChild(t_option5);
  104.    
  105.    t_option8 = c('option');
  106.    t_option8.innerHTML= "Lustrolito 255 gr";  
  107.    t_option8.value = 'Lustrolito 255 gr';
  108.    tipopapel.appendChild(t_option8);
  109.    
  110.    t_option9 = c('option');
  111.    t_option9.innerHTML= "Lustrolito 180 gr";  
  112.    t_option9.value = 'Lustrolito 180 gr';
  113.    tipopapel.appendChild(t_option9);
  114.    
  115.    t_option9 = c('option');
  116.    t_option9.innerHTML= "Lustrolito 150 gr";  
  117.    t_option9.value = 'Lustrolito 150 gr';
  118.    tipopapel.appendChild(t_option9);
  119.    
  120.    t_option10 = c('option');
  121.    t_option10.innerHTML= "Lustrolito 100 gr";  
  122.    t_option10.value = 'Lustrolito 100 gr';
  123.    tipopapel.appendChild(t_option10);
  124.  
  125.  //Select de tamaño
  126. t_size = t('Tamaño:');
  127.    size = c('select');  
  128.    size.name = 'size[]';
  129.    
  130.    s_option0 = c('option');  
  131.    s_option0.innerHTML= "";  
  132.    s_option0.value = '#';
  133.    size.appendChild(s_option0);
  134.    
  135.    s_option1 = c('option');  
  136.    s_option1.innerHTML= "Carta";  
  137.    s_option1.value = 'Carta';
  138.    size.appendChild(s_option1);
  139.    
  140.    s_option2 = c('option');
  141.    s_option2.innerHTML= "Oficio";  
  142.    s_option2.value = 'Oficio';
  143.    size.appendChild(s_option2);
  144.    
  145.    s_option3 = c('option');
  146.    s_option3.innerHTML= "Tabloide";  
  147.    s_option3.value = 'Tabloide';
  148.    size.appendChild(s_option3);
  149.    
  150.    s_option4 = c('option');
  151.    s_option4.innerHTML= "Tabloide Rebasado";  
  152.    s_option4.value = 'Tabloide Rebasado';
  153.    size.appendChild(s_option4);
  154.    
  155. //Cantidad
  156. t_canti = t('Cantidad:');
  157.    canti = c('INPUT');  
  158.    canti.name = 'cantidad[]';
  159.    canti.type = 'text';
  160.    
  161. //Comentario
  162. t_comment = t('Especificaciones:');  
  163.    comment = c('textarea');  
  164.    comment.name = 'comment[]';
  165.  
  166. //INICIA CHILDS
  167. br = c('<br>');
  168. span.appendChild(br);
  169. span.appendChild(a);
  170. br = c('<br>');
  171. span.appendChild(br);
  172. span.appendChild(t_archivo);
  173. span.appendChild(field);
  174. br = c('<br>');
  175. span.appendChild(br);
  176. span.appendChild(t_tipo);
  177. span.appendChild(tipopapel);
  178. br = c('<br>');
  179. span.appendChild(br);
  180. span.appendChild(t_size);
  181. span.appendChild(size);
  182. br = c('<br>');
  183. span.appendChild(br);
  184. span.appendChild(t_canti);
  185. span.appendChild(canti);
  186. br = c('<br>');
  187. span.appendChild(br);
  188. span.appendChild(t_comment);
  189. span.appendChild(comment);
  190. br = c('<br>');
  191. span.appendChild(br);
  192. br = c('<br>');
  193. span.appendChild(br);
  194. container.appendChild(span);
  195. br = c('<br>');
  196. span.appendChild(br);
  197. }
  198. //Remove Childs
  199. removeField = function (evt) {
  200.    lnk = f(e(evt));
  201.    span = d(lnk.name);
  202.    span.parentNode.removeChild(span);
  203. }

basicamente el html:

<div id="files"></div>
<a href="#" onClick="addField()">Agregar otro archivo</a><br>

dentro de un form.

De nuevo gracias.
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.

Última edición por WyLY; 11/10/2008 a las 12:19 Razón: he cambiado el codigo a [highlight=javascript]
  #2 (permalink)  
Antiguo 13/10/2008, 13:41
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
De acuerdo Respuesta: Ayuda con IE

Si a alguien le interesa o se topa con el mismo problema, dejo mi anecdota:

Bueno después de estar picandole y leyendo un poco por aquí y por cuallá, termine por hacer un If para detectar el navegador.

http://www.w3schools.com/js/js_browser.asp

Explorer tiene unos detalles con Jscript vs Javascriopt y demás por lo que al hacer un document.create..... no permite agregarle el atribute .name si no es de la siguiente forma
var ejemplo = document.createElement("<input name='nombre'>");

y para agregarle otros atributos haces setAtributte.

Bueno, les dejo el link:

http://javascript.about.com/library/bliebug2.htm

Un abrazo.
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.
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 16:44.