如何在执行脚本之前确保包含某些库?

时间:2013-01-31 00:09:18

标签: javascript jquery testing object modernizr

在javascript中,我想知道是否有办法检查某个库(jQuery,Modernizr等)是否存在,如果没有,则抛出警报。

类似于:require( jQuery ); // if jQuery is undefined, display an alert
或者:require( Modernizr ); // if Modernizr is undefined, display an alert

我知道这是可能的,因为ModernizrjQuery是对象,因此我有理由检查typeof,如下所示:

function pass() { } // use as noop

var require = function( tool ) {
    if(typeof(tool) == "undefined") {
        alert("[" + tool + "] is not defined.");
    } else {
        pass();
    }
}

    require( jQuery );

但当然,这不起作用,因为Chrome的错误控制台显示"Object [jQuery] is not defined.",因为我测试了一些不存在的东西。有什么提示吗?

很多新的JavaScript,所以任何帮助都会非常感激!

2 个答案:

答案 0 :(得分:1)

您应该将该工具作为字符串传递,然后检查window对象中的该键:

var require = function( tool ) {
    if (window[tool] === undefined) {
        alert("[" + tool + "] is not defined.");
    } else {
        pass();
    }
}

require( 'jQuery' );

这是小提琴:http://jsfiddle.net/9vXM2/

答案 1 :(得分:1)

http://yepnopejs.com/就是@ModernDesigner

之后的样子