Tengo un pequeño problemita. Espero podais orientarme.
Estoy utilizando google charts en un .xml. ( https://developers.google.com/chart/?hl=es).
Como el javascript que utiliza me choca con otra librería de java tengo que insertar esta linea de código.
Código:
Me compila correctamente, pero a la hora de ejecutar el javascript, me da error. Illegal Character. Con el Firegug, meto el código traducido:Array.prototype.reduce=function(fun){var len=this.length>>>0;if(typeof fun!="function")throw new TypeError;if(len==0&&arguments.length==1)throw new TypeError;var i=0;if(arguments.length>=2)var rv=arguments[1];else{do{if(i in this){var rv=this[i++];break}if(++i>=len)throw new TypeError;}while(true)}for(;i<len;i++)if(i in this)rv=fun.call(undefined,rv,this[i],i,this);return rv};
Código:
Así me pinta. Pero si dejo ese código en eclipse vuelve a darme error cuando ejecuta. He probado a introducir el CDATA y tampoco funciona. No me reconoce los caracters.Array.prototype.reduce=function(fun){var len=this.length>>>0;if(typeof fun!="function")throw new TypeError;if(len == 0 && arguments.length==1)throw new TypeError;var i=0;if(arguments.length>=2)var rv=arguments[1];else{do{if(i in this){var rv=this[i++];break}if(++i>=len)throw new TypeError;}while(true)}for(;i<len;i++)if(i in this)rv=fun.call(undefined,rv,this[i],i,this);return rv};
¿Alguna idea?
El código entero es este.
Código:
Muchas gracias. <script type="text/javascript" id="test"> function drawCharts(){ var whatever = Array.prototype.reduce; try { <![CDATA[ Array.prototype.reduce=function(fun){var len=this.length>>>0;if(typeof fun!="function")throw new TypeError;if(len==0&&arguments.length==1)throw new TypeError;var i=0;if(arguments.length>=2)var rv=arguments[1];else{do{if(i in this){var rv=this[i++];break}if(++i>=len)throw new TypeError;}while(true)}for(;i<len;i++)if(i in this)rv=fun.call(undefined,rv,this[i],i,this);return rv}; //Array.prototype.reduce=function(fun){var len=this.length>>>0;if(typeof fun!="function")throw new TypeError;if(len == 0 && arguments.length==1)throw new TypeError;var i=0;if(arguments.length>=2)var rv=arguments[1];else{do{if(i in this){var rv=this[i++];break}if(++i>=len)throw new TypeError;}while(true)}for(;i<len;i++)if(i in this)rv=fun.call(undefined,rv,this[i],i,this);return rv}; ]]> var data = new google.visualization.DataTable(); data.addColumn('string', 'Mes'); data.addColumn('number', 'a');data.addColumn('number', 'Extras');data.addColumn('number', 'B'); data.addColumn('number', 'C');data.addColumn('number', 'D'); var options = { chartArea:{left:30,right:5,top:15,width:"90%",height:"60%"}, legend: { position: 'top', maxLines: 12 }, tooltip: {isHtml: true}, bar: { groupWidth: '75%' }, isStacked: true, }; var chart = new google.visualization.ColumnChart(document.getElementById('payroll_chart_div')); chart.draw(data, options); } finally { Array.prototype.reduce = whatever; } } google.load("visualization", "1", {'callback' : 'drawCharts' ,'packages':["corechart"], 'language': 'en'}); </script>