2015-01-05 23 views

回答

1

遺留構建包含一些不在IE8中的零碎塊的填充 - Ractive在第一次加載時會執行自己的檢查,如果檢測到缺少的功能則會引發錯誤(並且它是非遺留構建) 。檢測代碼here - 所以你也可以複製到你的應用程序:

function useRactiveLegacy() { 
    return (
    typeof Date.now !== FUNCTION     || 
    typeof String.prototype.trim !== FUNCTION || 
    typeof Object.keys !== FUNCTION    || 
    typeof Array.prototype.indexOf !== FUNCTION || 
    typeof Array.prototype.forEach !== FUNCTION || 
    typeof Array.prototype.map !== FUNCTION  || 
    typeof Array.prototype.filter !== FUNCTION || 
    (typeof window !== 'undefined' && typeof window.addEventListener !== FUNCTION) 
); 
} 

// using Modernizr 
Modernizr.load({ 
    test: !useRactiveLegacy(), 
    yep: 'ractive.js', 
    nope: 'ractive-legacy.js 
}); 

// using AMD 
require([ useRactiveLegacy() ? 'ractive-legacy' : 'ractive' ], function (Ractive) { 
    /* code goes here */ 
}); 

請記住這些檢查可以變化與Ractive的未來版本 - 例如,有可能來的我們決定將承諾放棄到舊版本,而不是自動填充它。