【问题标题】:Modernizr yepnope conditional callback only when falseModernizr yepnope 条件回调仅在 false 时
【发布时间】:2013-05-19 10:11:09
【问题描述】:

非常感谢您对最佳方式的想法和建议。如果modernizr 测试为假,我想执行一个小脚本——不值得加载。这个解决方案看起来有点笨拙。

        Modernizr.load({
            test: Modernizr.inlinesvg,
            yep : 'js/funky-svg-animation.js',
            complete : function () {
                if (!Modernizr.inlinesvg){
                    console.log('stuff to do when false');
                }
            },
        });

编辑: 基于 cmets,这是否是一种有效的方法:

        if (Modernizr.inlinesvg){
            $(body).append('<script src="js/funky-svg-animation.js"><\/script>')
        } else {
            console.log('stuff to do when false');
        }

或者这种方法有问题吗?

【问题讨论】:

    标签: javascript modernizr yepnope


    【解决方案1】:

    在 Modernizr 中,您有 yepnope,因此如果您正在测试的浏览器不支持您需要的功能,那么您可以做您的事情。

    Modernizr.load({
          test: Modernizr.inlinesvg,
          yep : 'js/funky-svg-animation.js',
          nope : 'path/to/your/script.js'
          },
      });
    

    在哪里 path/to/your/script.js 只是:

    console.log('stuff to do when false');
    

    这是 Yenope 的默认行为,应该在需要时加载外部资源。

    【讨论】:

    • 然后你可以删除 script.js 中的条件,因为它只会在 nope 状态下执行(我假设这是因为我没有使用 Modernizr/yepnope 的经验)
    • 是的,没错,yenope 只有在浏览器中没有该功能时才会加载脚本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多