Modernizr.load 已弃用。 Yepnope.js 已弃用。怎么办?

Posted

技术标签:

【中文标题】Modernizr.load 已弃用。 Yepnope.js 已弃用。怎么办?【英文标题】:Modernizr.load Deprecated. Yepnope.js Deprecated. Now what? 【发布时间】:2016-03-03 09:04:29 【问题描述】:

在 Modernizr v3 之前,我使用的是 yepnope.js

Modernizr.load 和 yepnope.js 都已被弃用。我们现在如何有条件地调用样式表或 javascript 文件?

使用 Modernizr v2.5.3 的示例:

Modernizr.load(
  test: Modernizr['object-fit'],
  nope: ['./dist/scripts/object-fit.js'],
  complete: function()
  if (!Modernizr['object-fit']) 
   jQuery(".poster img").imageScale(
   scale: "best-fill", 
   rescaleOnResize: true
   );
  
 
);

【问题讨论】:

【参考方案1】:

有a new syntax 并且功能名称都是小写的。您可以将其与jQuery's getScript method 结合使用。

看起来像这样:

if (Modernizr.objectfit)
    jQuery.getScript("./dist/scripts/object-fit.js")
        //it worked! do something!
        .done(function()
            console.log('js loaded');
        )
        //it didn't work! do something!
        .fail(function()
            console.log('js not loaded');
        );
 else 
    jQuery(".poster img").imageScale(
        scale: "best-fill", 
        rescaleOnResize: true
    );

【讨论】:

非常感谢@mhk!抱歉,这么久才回复。 澄清一下,这对我有用:``` $(function() if (Modernizr.objectfit) else $.getScript("./dist/scripts/object- fit.js", function() $(".img-scale").imageScale( scale: "best-fill", rescaleOnResize: true ); ); ; ); ```【参考方案2】:

在这里查看脚本:https://***.com/a/7719185 — 不需要 jQuery。 (请注意,答案中有一个较短的 Promise 示例;不要在第一个示例之后停止阅读(就像我一样)。

这里是 CSS:loadCSS:https://github.com/filamentgroup/loadCSS/blob/master/src/loadCSS.js

——在某种程度上,这甚至比 YepNope.js 更好,如果你不需要它的任何功能,只需要加载东西 + 回调。因为上面链接的东西比 yepnope.js 小(小于min.js.gz)。

(并且可以与Modernizr 结合,就像他的答案中显示的mhk。)

【讨论】:

以上是关于Modernizr.load 已弃用。 Yepnope.js 已弃用。怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 已弃用:each() 函数已弃用 [重复]

已弃用:指令 'allow_url_include' 在第 0 行的 Unknown 中已弃用

UIAlertView 已弃用:首先在 iOS 9.0 中弃用 - UIAlertView 已弃用。将 UIAlertController 与首选样式一起使用

DTD 是不是已弃用?

macOS 上的 OpenGL 是不是已弃用?

已弃用:each() 函数已弃用。 C:\xampp\htdocs\phprojekt\library\Zend\Cache\Backend.php 在第 66 行 [重复]