Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/12/2011, 13:58
marcwolf
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 14 años, 6 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