Foros del Web » Programando para Internet » Javascript »

Me falla un Script sólo en Google chrome

Estas en el tema de Me falla un Script sólo en Google chrome en el foro de Javascript en Foros del Web. Holas, Copie el código por ahí porque moló este script, pero resulta que no me va en chrome y en todos los demás sí. Alguién ...
  #1 (permalink)  
Antiguo 22/12/2011, 13:58
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Me falla un Script sólo en Google chrome

Holas,

Copie el código por ahí porque moló este script, pero resulta que no me va en chrome y en todos los demás sí. Alguién saber porque es?¿

Es un script navideño, seguramente os suene a mas de uno jeje, La linea que falla es la 135 y me dice le siguiente error;

Uncaught TypeError: Cannot read property 'style' of null

Encontre una solucion "creo" pero no la entiendo xD, de echo no acabo de entender el script entero aunq haya modificado algunas cosas, pero si hay alguién más avispado , se agradeceria una ayudica

http://www.google.com/support/forum/...80c11244&hl=en



Código Javascript:
Ver original
  1. //Snow - http://www.btinternet.com/~kurt.grigg/javascript
  2.  
  3. if  ((document.getElementById) &&
  4. window.addEventListener || window.attachEvent){
  5.  
  6. (function(){
  7.  
  8. //Configure here.
  9.  
  10. var num = 40;   //Number of flakes
  11. var timer = 30; //setTimeout speed. Varies on different comps
  12. var enableinNS6 = 1 //Enable script in NS6/Mozilla? Snow animation could be slow in those browsers. (1=yes, 0=no).
  13.  
  14. //End.
  15.  
  16. var y = [];
  17. var x = [];
  18. var fall = [];
  19. var theFlakes = [];
  20. var sfs = [];
  21. var step = [];
  22. var currStep = [];
  23. var h,w,r;
  24. var d = document;
  25. var pix = "px";
  26. var domWw = (typeof window.innerWidth == "number");
  27. var domSy = (typeof window.pageYOffset == "number");
  28. var idx = d.getElementsByTagName('div').length;
  29.  
  30. if (d.documentElement.style &&
  31. typeof d.documentElement.style.MozOpacity == "string")
  32.  
  33.  
  34. for (i = 0; i < num; i++){
  35.     // Desde Aquí cambio el tamaño
  36.  
  37. sfs[i] = Math.round(2 + Math.random() * 2);
  38.  
  39. document.write('<div id="flake'+(idx+i)+'" style="position:absolute;z-index:3;top:0px;left:0px;width:'
  40. +sfs[i]+'px;height:'+sfs[i]+'px;background-color:#EBEBEB;font-size:'+sfs[i]+'px"><\/div>');
  41.  
  42. currStep[i] = 0;
  43. fall[i] = (sfs[i] == 1)?
  44. Math.round(2 + Math.random() * 2): Math.round(3 + Math.random() * 2);
  45. step[i] = (sfs[i] == 1)?
  46. 0.05 + Math.random() * 0.1 : 0.05 + Math.random() * 0.05 ;
  47. }
  48.  
  49.  
  50. if (domWw) r = window;
  51. else{
  52.   if (d.documentElement &&
  53.   typeof d.documentElement.clientWidth == "number" &&
  54.   d.documentElement.clientWidth != 0)
  55.   r = d.documentElement;
  56.  else{
  57.   if (d.body &&
  58.   typeof d.body.clientWidth == "number")
  59.   r = d.body;
  60.  }
  61. }
  62.  
  63.  
  64. function winsize(){
  65. var oh,sy,ow,sx,rh,rw;
  66. if (domWw){
  67.   if (d.documentElement && d.defaultView &&
  68.   typeof d.defaultView.scrollMaxY == "number"){
  69.   oh = d.documentElement.offsetHeight;
  70.   sy = d.defaultView.scrollMaxY;
  71.   ow = d.documentElement.offsetWidth;
  72.   sx = d.defaultView.scrollMaxX;
  73.   rh = oh-sy;
  74.   rw = ow-sx;
  75.  }
  76.  else{
  77.   rh = r.innerHeight;
  78.   rw = r.innerWidth;
  79.  }
  80. h = rh - 2;  
  81. w = rw - 2;
  82. }
  83. else{
  84. h = r.clientHeight - 2;
  85. w = r.clientWidth - 2;
  86. }
  87. }
  88.  
  89.  
  90. function scrl(yx){
  91. var y,x;
  92. if (domSy){
  93.  y = r.pageYOffset;
  94.  x = r.pageXOffset;
  95.  }
  96. else{
  97.  y = r.scrollTop;
  98.  x = r.scrollLeft;
  99.  }
  100. return (yx == 0)?y:x;
  101. }
  102.  
  103.  
  104. function snow(){
  105. var dy,dx;
  106.  
  107. for (i = 0; i < num; i++){
  108.  dy = fall[i];
  109.  dx = fall[i] * Math.cos(currStep[i]);
  110.  
  111.  y[i]+=dy;
  112.  x[i]+=dx;
  113.  
  114.  if (x[i] >= w || y[i] >= h){
  115.   y[i] = -10;
  116.   x[i] = Math.round(Math.random() * w);
  117.   fall[i] = (sfs[i] == 1)?
  118.   Math.round(2 + Math.random() * 2): Math.round(3 + Math.random() * 2);
  119.   step[i] = (sfs[i] == 1)?
  120.   0.05 + Math.random() * 0.1 : 0.05 + Math.random() * 0.05 ;
  121.  }
  122.  
  123.  theFlakes[i].top = y[i] + scrl(0) + pix;
  124.  theFlakes[i].left = x[i] + scrl(1) + pix;
  125.  
  126.  currStep[i]+=step[i];
  127. }
  128. setTimeout(snow,timer);
  129. }
  130.  
  131.  
  132. function init(){
  133. winsize();
  134. for (i = 0; i < num; i++){
  135. theFlakes[i] = document.getElementById("flake"+(idx+i)).style;
  136.  y[i] = Math.round(Math.random()*h);
  137.  x[i] = Math.round(Math.random()*w);
  138. }
  139. snow();
  140. }
  141.  
  142.  
  143. if (window.addEventListener){
  144.  window.addEventListener("resize",winsize,false);
  145.  window.addEventListener("load",init,false);
  146. }  
  147. else if (window.attachEvent){
  148.  window.attachEvent("onresize",winsize);
  149.  window.attachEvent("onload",init);
  150. }
  151.  
  152. })();
  153. }//End.

gracias de antemano
  #2 (permalink)  
Antiguo 25/12/2011, 23:49
Avatar de Pablo Ayala  
Fecha de Ingreso: septiembre-2005
Ubicación: Cancún, México
Mensajes: 231
Antigüedad: 18 años, 7 meses
Puntos: 28
Respuesta: Me falla un Script sólo en Google chrome

¿"No se puede leer el estilo de un elemento nulo"?
Mmmm pero solo te falla en Chrome?
Que raro... no puedes publicar el link?

o... ya checaste con las herramientas para desarrolladores de chrome si los elementos realmente se estan creando?

saludos
__________________
Atentamente,

Pablo Ayala.
Si vas a responder algo en el foro que sea con amabilidad.

Etiquetas: chrome, falla, google
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 01:34.