确定是否包含依赖的JavaScript文件
我有一个主JavaScript文件,我们将调用另一个文件所依赖的确定是否包含依赖的JavaScript文件,javascript,html,cross-browser,custom-attributes,Javascript,Html,Cross Browser,Custom Attributes,我有一个主JavaScript文件,我们将调用另一个文件所依赖的core.js 在core.js中,我定义了一个需要存在于依赖文件中的对象 core.js: (function (){ /* base package */ var core = window.core = function() { // Throw an error, the core package cannot be instantiated. throw new Error("A package canno
core.js
在core.js中,我定义了一个需要存在于依赖文件中的对象
core.js:
(function (){
/* base package */
var core = window.core = function() {
// Throw an error, the core package cannot be instantiated.
throw new Error("A package cannot be instantiated");
};
})();
utils.js
/* utils package */
core.utils = function() {
// Throw an error, the core package cannot be instantiated.
throw("A package cannot be instantiated");
};
/**
* Utility: StringUtils
*/
core.utils.StringUtils = new Object();
core.utils.StringUtils.prototype = {
/**
* ltrim - Removes preceding whitespaces
*/
ltrim: function(value) {
var re = /\s*((\S+\s*)*)/;
return value.replace(re, "$1");
},
/**
* rtrim - Removes succeeding whitespaces
*/
rtrim: function(value) {
var re = /((\s*\S+)*)\s*/;
return value.replace(re, "$1");
},
/**
* trim - Removes preceding and succeeding whitespaces
*/
trim: function(value) {
return core.StringUtils.ltrim(core.StringUtils.rtrim(value));
}
};
目前,我正在向
标记添加一个id标记
<script id="core.js" src="core.js" type="text/javascript"></script>
我应该关注跨浏览器兼容性吗?它目前在IE9和FF5中工作,但我想确保它适用于所有浏览器
是否有其他/更好的方法来确定是否包含文件?这会很好,因为
标记是同步的,该标记之后的任何Javascript都可以访问核心
。如果你想用另一种方法做同样的事情,你可以接受Marc B的建议,在core.js中设置一个标志。该标志也可以是核心对象的一部分,如core.is_loaded=true
然后您只需检查其他文件中的是否(core.is_loaded)
。一个“便宜”的替代方法是在“必须包含”文件中设置一个哨兵变量:var core_is_loaded=true
,并检查该变量是否存在以及是否具有适当的值。这不是一个真正的答案,但为什么要使用core,如果您不想实例化core.utils等函数,是否可以使用它们?简单对象不行?@Chetan设计模式松散地基于Frank Zammetti的“实用JavaScript、DOM脚本和Ajax项目”第3章。为了正确地处理错误,我想抛出一个错误,让任何使用脚本的人都知道他们做错了什么,而不是一般的“对象不支持此操作”。我想避免在core抛出错误或没有实例化的情况下在core内部添加标志。如果core存在,则必须已加载core.js。但是,如果core不存在,除了“core.js未加载”之外,还有不止一个原因
(function() {
if (typeof (core) == 'undefined') {
var script = document.getElementById("core.js");
if (script == null)
throw ("core.js is missing.");
else
throw ("Unknown Exception. core is undefined.");
}
})();