yetti333 Report post Posted June 30, 2008 I'm getting tons of errors in the FusionCharts.js file in my Visual Studio 2008 (3.5 framework) application. My website won't build because it finds errors in the javascript file. I'm not sure why, the Javascript looks valid to me. However, VS doesn't like it. My project is in C#, and I'm trying to get an example to run with the free demo so my boss can see how it works. Any help in resolving this issue would be appreciated. Share this post Link to post Share on other sites
FusionCharts Support Report post Posted July 1, 2008 Hi, We had tried our samples using FusionCharts in ASP 3.5 (VS Express 2008) iwth no issues. Could you please let us your code as well as the other files? You can also try running the samples code (from Download Pack) and BluePrint Application from http://www.fusioncharts.com/download.asp Share this post Link to post Share on other sites
yetti333 Report post Posted July 1, 2008 It's the entire FusionCharts.js file. Not only doesn't it like the single quotes, but the way the objects in javascript are being instantiated. I get errors like this: Error 1 Invalid token 'if' in class, struct, or interface member declaration C:ClientsDVHC Reporting SvncodeDVHC.ReportingDVHC.WebassetsscriptsFusionCharts.js 8 Here's the code: /** * FusionCharts: Flash Player detection and Chart embedding. * Version: 1.2 (1st November, 2007) - Added Player detection, New conditional fixes for IE, New FORM fixes for IE * Version: 1.1 (29th June, 2007) - Added Player detection, New conditional fixes for IE * * Morphed from SWFObject (http://blog.deconcept.com/swfobject/) under MIT License: * http://www.opensource.org/licenses/mit-license.php * */ if(typeof infosoftglobal == "undefined") var infosoftglobal = new Object(); if(typeof infosoftglobal.FusionChartsUtil == "undefined") infosoftglobal.FusionChartsUtil = new Object(); infosoftglobal.FusionCharts = function(swf, id, w, h, debugMode, registerWithJS, c, scaleMode, lang, detectFlashVersion, autoInstallRedirect){ if (!document.getElementById) { return; } //Flag to see whether data has been set initially this.initialDataSet = false; //Create container objects this.params = new Object(); this.variables = new Object(); this.attributes = new Array(); //Set attributes for the SWF if(swf) { this.setAttribute('swf', swf); } if(id) { this.setAttribute('id', id); } if(w) { this.setAttribute('width', w); } if(h) { this.setAttribute('height', h); } //Set background color if© { this.addParam('bgcolor', c); } //Set Quality this.addParam('quality', 'high'); //Add scripting access parameter this.addParam('allowScriptAccess', 'always'); //Pass width and height to be appended as chartWidth and chartHeight this.addVariable('chartWidth', w); this.addVariable('chartHeight', h); //Whether in debug mode debugMode = debugMode ? debugMode : 0; this.addVariable('debugMode', debugMode); //Pass DOM ID to Chart this.addVariable('DOMId', id); //Whether to registed with JavaScript registerWithJS = registerWithJS ? registerWithJS : 0; this.addVariable('registerWithJS', registerWithJS); //Scale Mode of chart scaleMode = scaleMode ? scaleMode : 'noScale'; this.addVariable('scaleMode', scaleMode); //Application Message Language lang = lang ? lang : 'EN'; this.addVariable('lang', lang); //Whether to auto detect and re-direct to Flash Player installation this.detectFlashVersion = detectFlashVersion?detectFlashVersion:1; this.autoInstallRedirect = autoInstallRedirect?autoInstallRedirect:1; //Ger Flash Player version this.installedVer = infosoftglobal.FusionChartsUtil.getPlayerVersion(); if (!window.opera && document.all && this.installedVer.major > 7) { // Only add the onunload cleanup if the Flash Player version supports External Interface and we are in IE infosoftglobal.FusionCharts.doPrepUnload = true; } } infosoftglobal.FusionCharts.prototype = { setAttribute: function(name, value){ this.attributes[name] = value; }, getAttribute: function(name){ return this.attributes[name]; }, addParam: function(name, value){ this.params[name] = value; }, getParams: function(){ return this.params; }, addVariable: function(name, value){ this.variables[name] = value; }, getVariable: function(name){ return this.variables[name]; }, getVariables: function(){ return this.variables; }, getVariablePairs: function(){ var variablePairs = new Array(); var key; var variables = this.getVariables(); for(key in variables){ variablePairs.push(key +"="+ variables[key]); } return variablePairs; }, getSWFHTML: function() { var swfNode = ""; if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture swfNode = ' swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" '; var params = this.getParams(); for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; } var pairs = this.getVariablePairs().join("&"); if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; } swfNode += '/>'; } else { // PC IE swfNode = ''; swfNode += ''; var params = this.getParams(); for(var key in params) { swfNode += ''; } var pairs = this.getVariablePairs().join("&"); if(pairs.length > 0) {swfNode += '';} swfNode += ""; } return swfNode; }, setDataURL: function(strDataURL){ //This method sets the data URL for the chart. //If being set initially if (this.initialDataSet==false){ this.addVariable('dataURL',strDataURL); //Update flag this.initialDataSet = true; }else{ //Else, we update the chart data using External Interface //Get reference to chart object var chartObj = infosoftglobal.FusionChartsUtil.getChartObject(this.getAttribute('id')); chartObj.setDataURL(strDataURL); } }, setDataXML: function(strDataXML){ //If being set initially if (this.initialDataSet==false){ //This method sets the data XML for the chart INITIALLY. this.addVariable('dataXML',strDataXML); //Update flag this.initialDataSet = true; }else{ //Else, we update the chart data using External Interface //Get reference to chart object var chartObj = infosoftglobal.FusionChartsUtil.getChartObject(this.getAttribute('id')); chartObj.setDataXML(strDataXML); } }, setTransparent: function(isTransparent){ //Sets chart to transparent mode when isTransparent is true (default) //When no parameter is passed, we assume transparent to be true. if(typeof isTransparent=="undefined") { isTransparent=true; } //Set the property if(isTransparent) this.addParam('WMode', 'transparent'); else this.addParam('WMode', 'Opaque'); }, render: function(elementId){ //First check for installed version of Flash Player - we need a minimum of 8 if((this.detectFlashVersion==1) && (this.installedVer.major < 8)){ if (this.autoInstallRedirect==1){ //If we can auto redirect to install the player? var installationConfirm = window.confirm("You need Adobe Flash Player 8 (or above) to view the charts. It is a free and lightweight installation from Adobe.com. Please click on Ok to install the same."); if (installationConfirm){ window.location = "http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"; }else{ return false; } }else{ //Else, do not take an action. It means the developer has specified a message in the DIV (and probably a link). //So, expect the developers to provide a course of way to their end users. //window.alert("You need Adobe Flash Player 8 (or above) to view the charts. It is a free and lightweight installation from Adobe.com. "); return false; } }else{ //Render the chart var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId; n.innerHTML = this.getSWFHTML(); //Added compatibility //Check if it's added in Mozilla embed array or if already exits if(!document.embeds[this.getAttribute('id')] && !window[this.getAttribute('id')]) window[this.getAttribute('id')]=document.getElementById(this.getAttribute('id')); //or else document.forms[formName/formIndex][chartId] return true; } } } /* ---- detection functions ---- */ infosoftglobal.FusionChartsUtil.getPlayerVersion = function(){ var PlayerVersion = new infosoftglobal.PlayerVersion([0,0,0]); if(navigator.plugins && navigator.mimeTypes.length){ var x = navigator.plugins["Shockwave Flash"]; if(x && x.description) { PlayerVersion = new infosoftglobal.PlayerVersion(x.description.replace(/([a-zA-Z]|s)+/, "").replace(/(s+r|s+b[0-9]+)/, ".").split(".")); } }else if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0){ //If Windows CE var axo = 1; var counter = 3; while(axo) { try { counter++; axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter); PlayerVersion = new infosoftglobal.PlayerVersion([counter,0,0]); } catch (e) { axo = null; } } } else { // Win IE (non mobile) // Do minor version lookup in IE, but avoid Flash Player 6 crashing issues try{ var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); }catch(e){ try { var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); PlayerVersion = new infosoftglobal.PlayerVersion([6,0,21]); axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code) } catch(e) { if (PlayerVersion.major == 6) { return PlayerVersion; } } try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); } catch(e) {} } if (axo != null) { PlayerVersion = new infosoftglobal.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(",")); } } return PlayerVersion; } infosoftglobal.PlayerVersion = function(arrVersion){ this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0; this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0; this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0; } // ------------ Fix for Out of Memory Bug in IE in FP9 ---------------// /* Fix for video streaming bug */ infosoftglobal.FusionChartsUtil.cleanupSWFs = function() { var objects = document.getElementsByTagName("OBJECT"); for (var i = objects.length - 1; i >= 0; i--) { objects.style.display = 'none'; for (var x in objects) { if (typeof objects[x] == 'function') { objects[x] = function(){}; } } } } // Fixes bug in fp9 if (infosoftglobal.FusionCharts.doPrepUnload) { if (!infosoftglobal.unloadSet) { infosoftglobal.FusionChartsUtil.prepUnload = function() { __flash_unloadHandler = function(){}; __flash_savedUnloadHandler = function(){}; window.attachEvent("onunload", infosoftglobal.FusionChartsUtil.cleanupSWFs); } window.attachEvent("onbeforeunload", infosoftglobal.FusionChartsUtil.prepUnload); infosoftglobal.unloadSet = true; } } /* Add document.getElementById if needed (mobile IE < 5) */ if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }} /* Add Array.push if needed (ie5) */ if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }} /* Function to return Flash Object from ID */ infosoftglobal.FusionChartsUtil.getChartObject = function(id) { var chartRef=null; if (navigator.appName.indexOf("Microsoft Internet")==-1) { if (document.embeds && document.embeds[id]) chartRef = document.embeds[id]; else chartRef = window.document[id]; } else { chartRef = window[id]; } if (!chartRef) chartRef = document.getElementById(id); return chartRef; } /* Aliases for easy usage */ var getChartFromId = infosoftglobal.FusionChartsUtil.getChartObject; var FusionCharts = infosoftglobal.FusionCharts; Share this post Link to post Share on other sites
yetti333 Report post Posted July 1, 2008 I should also note, that I replaced all the single quotes with double quotes and it still gives me lots of errors. Share this post Link to post Share on other sites
yetti333 Report post Posted July 1, 2008 OK - this is not a bug. It should be filed under error or something else, I'm sorry. I figured out what it was. If you have your <script> tag as runat="server", then .NET 3.5 will interpret it as jscript and you'll get tons of errors. My script was: <script type="text/javascript" src="../assets/scripts/FusionCharts.js" runat="server"></script> I changed it to this: <script type="text/javascript" src="../assets/scripts/FusionCharts.js"></script> and now it works perfectly. Sorry for the hassle. Share this post Link to post Share on other sites