1

javascriptで、特定のライブラリ(jQuery、Modernizrなど)が存在するかどうかを確認する方法があるかどうかを知りたいのですが、存在しない場合はアラートをスローします。

次のようなもの:require( jQuery ); // if jQuery is undefined, display an alert
または: require( Modernizr ); // if Modernizr is undefined, display an alert

Modernizrとがオブジェクトであるため、これが可能であることを私は知っています。したがって、次のように、jQueryをチェックするのが理にかなっています。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は非常に新しいので、どんな助けでも大歓迎です!

4

2 に答える 2

1

ツールを文字列として渡してから、windowオブジェクトでそのキーを確認する必要があります。

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

require( 'jQuery' );

これがフィドルです:http://jsfiddle.net/9vXM2/

于 2013-01-31T00:12:28.097 に答える
1

http://yepnopejs.com/は、@ModernDesignerを求めているものです

于 2013-01-31T00:14:42.640 に答える