0
如何將polyfill腳本包裝爲AMD模塊並使用Modernizr和RequireJS有條件加載它?RequireJS:使用Modernizr有條件地加載填充物
(想通了,而我正在起草我的問題 - 張貼的答案別人試圖做同樣的事情)
如何將polyfill腳本包裝爲AMD模塊並使用Modernizr和RequireJS有條件加載它?RequireJS:使用Modernizr有條件地加載填充物
(想通了,而我正在起草我的問題 - 張貼的答案別人試圖做同樣的事情)
我需要加載的填充工具是jquery-placeholder對於不支持輸入佔位符的瀏覽器。它不提供開箱即用的AMD支持。
首先,我把它包作爲AMD模塊是這樣的:
define(['jquery'], function ($) {
(function(window, document, $) {
... polyfill ...
}(this, document, jQuery));
});
然後在main.js
我用Modernizr的有條件require()
的填充工具腳本:
require(['jquery', 'modernizr'], function ($, Modernizr) {
if (!Modernizr.input.placeholder) {
require(['jquery', 'placeholder'], function ($) {
$('#input').placeholder();
});
}
});
在你的榜樣
你需要兩倍的jQuery 。如果jQuery佔位符是需要jQuery的唯一原因,那麼在第一步中我只需要Modernizr而不是jQuery。同時使用[RequireJS shim](http://requirejs.org/docs/api.html#config-shim)代替在模塊包裝器中複製供應商源代碼被認爲是更好的做法,因爲您將供應商代碼保持原樣並且可以隨時取代它。 –