1. mxClient.js文件
mxClient.js
是客户端的引导机制,此文件include了运行mxGraph所需的所有源文件,并加载了其依赖的资源文件,以及配置了客户端的语言。
意思就是只要在需要使用mxGraph的地方用<script>
标签加载mxClient.js
即可使用该库。这是一种非常好的做法,不仅能方便的进行开发,还能提供mxClient的压缩版本以提升加载速度。
mxClient.js
的作用如下:
- 设置加载相关文件的全局变量
- 设置相关路径
- 设置客户端语言
- 加载css文件和js文件
1.1 控制加载相关文件
mxClient.js
定义了一些用于控制加载相关文件的全局变量:
// 用于切换<mxGraph>和<mxEditor>中两个资源文件的加载
// 这两个资源文件在resource文件夹中,如果应用已经提供则置false,参照GraphEditor
if (typeof(mxLoadResources) == 'undefined') {
mxLoadResources = true;
}
// 用于指定资源文件的后缀。默认为.txt
if (typeof(mxResourceExtension) == 'undefined') {
mxResourceExtension = '.txt';
}
// 用于强制在开发模式下加载JavaScript文件。默认为undefined
if (typeof(mxForceIncludes) == 'undefined') {
mxForceIncludes = false;
}
// 用于在初始化库时切换加载CSS文件
if (typeof(mxLoadStylesheets) == 'undefined') {
mxLoadStylesheets = true;
}
1.2 相关路径
还需要设置一些路径,如果没有指定则使用默认值:
// 所有文件的基本路径,不带斜杠。默认为'.'
// 在加载mxClient库之前覆盖此设置,比如mxBasePath='/path/to/core/directory'
if (typeof(mxBasePath) != 'undefined' && mxBasePath.length > 0) {
// 去掉斜杠
if (mxBasePath.substring(mxBasePath.length - 1) === '/') {
mxBasePath = mxBasePath.substring(0, mxBasePath.length - 1);
}
mxClient.basePath = mxBasePath;
} else {
mxClient.basePath = '.';
}
// 所有图片的基本路径,不带斜杠。默认为<mxClient.basePath> + '/images'
// 在加载mxClient库之前覆盖此设置,比如mxImageBasePath='/path/to/image/directory'
if (typeof(mxImageBasePath) != 'undefined' && mxImageBasePath.length > 0) {
// 去掉斜杠
if (mxImageBasePath.substring(mxImageBasePath.length - 1) === '/') {
mxImageBasePath = mxImageBasePath.substring(0, mxImageBasePath.length - 1);
}
mxClient.imageBasePath = mxImageBasePath;
} else {
mxClient.imageBasePath = mxClient.basePath + '/images';
}
1.3 配置语言
还支持主动设置客户端的语言,或者检测浏览器的语言以配置其语言:
// 设置客户端的语言,比如en表示英语,de表示德语。默认是en
// 资源文件的格式是使用下划线表示语言,比如graph_zh.txt
// 在加载mxClient库之前覆盖此设置,比如mxLanguage='en'
if (typeof(mxLanguage) != 'undefined' && mxLanguage != null) {
mxClient.language = mxLanguage;
} else {
// 在GraphEditor中必须设置mxLanguage,界面的语言才更改
mxLanguage = (mxClient.IS_IE) ? navigator.userLanguage : navigator.language;
// 中文分简体和繁体,这里只设置简体
mxLanguage = (mxLanguage === 'zh-CN') ? 'zh' : mxLanguage;
mxClient.language = mxLanguage;
}
// 设置默认语言加载不带下划线的资源文件。默认为en
// 在加载mxClient库之前覆盖此设置,比如mxDefaultLanguage='zh'
if (typeof(mxDefaultLanguage) != 'undefined' && mxDefaultLanguage != null) {
mxClient.defaultLanguage = mxDefaultLanguage;
} else {
mxClient.defaultLanguage = 'en';
}
// 设置支持的所有语言。默认语言不用添加到列表中
// 在加载mxClient库之前覆盖此设置,比如mxLanguages=['de','it','fr']
if (typeof(mxLanguages) != 'undefined' && mxLanguages != null) {