なぜこれはyesとfalseの両方に警告するのですか?
Modernizr.load([
{
test: Modernizr.cssgradients,
yep: alert('Supports it!'),
nope: alert('Oh, damn! This browser sucks!')
}
]);
OSXで最新のChromeを使用しています。
なぜこれはyesとfalseの両方に警告するのですか?
Modernizr.load([
{
test: Modernizr.cssgradients,
yep: alert('Supports it!'),
nope: alert('Oh, damn! This browser sucks!')
}
]);
OSXで最新のChromeを使用しています。
yepnope プレフィックスを使用すると、定義済みの名前付き関数を実行できます。注: OS X の最新の chrome でのみテストしました。
ただし、これを機能させるには、ページにロードする予定の画像などの「ダミー URL」が必要です (ロゴが適切な候補です)。
また、メソッドをModernizr.load
エイリアスするだけなので、接頭辞を追加するには名前でyepnope.apply
参照する必要があります。yepnope
/*globals window */
(function (Modernizr) {
"use strict";
window.yepnope.addPrefix('function', function (resourceObj) {
var dummyUrl = 'static/my_logo.png';
resourceObj.noexec = true;
window[resourceObj.url]();
resourceObj.url = dummyUrl;
return resourceObj;
});
// predefined functions
window.alert_support = function () {
window.alert('Supports it!');
};
window.alert_damn = function () {
window.alert('Oh, damn! This browser sucks!');
};
window.alert_boom = function () {
window.alert('boom');
};
// Modernizer.load is an alias for yepnope. See API at http://yepnopejs.com/.
Modernizr.load([{
test: Modernizr.cssgradients,
yep: 'function!alert_support',
nope: 'function!alert_damn'
}, {
test: Modernizr.rgba,
yep: 'function!alert_boom'
}]);
}(window.Modernizr));
もちろん、グローバル名前空間を汚染したくない場合はwindow
、名前付き関数をオブジェクトに入れwindow[resourceObj.url]();
てwindow.MyObj[resourceObj.url]();
.
これの本当の力は、callback
関数が起動すること、名前付き関数も呼び出すことができることModernizr.load
、および/またはここに示されている一般的な関数エグゼキューターよりも目的のあるプレフィックスを記述できることです。
yep
およびパラメータは、nope
関数を引数として受け入れません。が成功したか失敗したかに基づいてロードするスクリプトをstring
または で示す必要があります。詳細については、ドキュメントを参照してください。array of strings
test
Modernizr.load