fusioncharts.js

来自「zapatec suite 最新版 20070204,非常棒的ajax widg」· JavaScript 代码 · 共 203 行

JS
203
字号
/** * FusionCharts: Flash Player detection and Chart embed  *  * 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){	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(c) { 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);}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 = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'"  ';			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 = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'">';			swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';			var params = this.getParams();			for(var key in params) {			 swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';			}			var pairs = this.getVariablePairs().join("&");						if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}			swfNode += "</object>";		}		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);		}	},	render: function(elementId){		var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;		n.innerHTML = this.getSWFHTML();		return true;			}}// ------------ Fix for Out of Memory Bug in IE in FP9 ---------------///* Fix for video streaming bug */infosoftglobal.FusionChartsUtil.cleanupSWFs = function() {	if (window.opera || !document.all) return;	var objects = document.getElementsByTagName("OBJECT");	for (var i=0; i < objects.length; i++) {		objects[i].style.display = 'none';		for (var x in objects[i]) {			if (typeof objects[i][x] == 'function') {				objects[i][x] = function(){};			}		}	}}// Fixes bug in fp9infosoftglobal.FusionChartsUtil.prepUnload = function() {	__flash_unloadHandler = function(){};	__flash_savedUnloadHandler = function(){};	if (typeof window.onunload == 'function') {		var oldUnload = window.onunload;		window.onunload = function() {			infosoftglobal.FusionChartsUtil.cleanupSWFs();			oldUnload();		}	} else {		window.onunload = infosoftglobal.FusionChartsUtil.cleanupSWFs;	}}if (typeof window.onbeforeunload == 'function') {	var oldBeforeUnload = window.onbeforeunload;	window.onbeforeunload = function() {		infosoftglobal.FusionChartsUtil.prepUnload();		oldBeforeUnload();	}} else {	window.onbeforeunload = infosoftglobal.FusionChartsUtil.prepUnload;}/* 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){  if (window.document[id]) {      return window.document[id];  }  if (navigator.appName.indexOf("Microsoft Internet")==-1) {    if (document.embeds && document.embeds[id])      return document.embeds[id];   } else {    return document.getElementById(id);  }}/* Aliases for easy usage */var getChartFromId = infosoftglobal.FusionChartsUtil.getChartObject;var FusionCharts = infosoftglobal.FusionCharts;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?