Sign in to follow this  
yetti333

Visual Studio 2008 FusionCharts.js does not compile

Recommended Posts

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

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

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this