2

我正在使用 Modernizr 来检查功能,即 csscolumns,并在此功能不可用时运行Modernizr.load()以使用css3-multi-column.js polyfill 。这一切都很好,除了 Modernizr/yepnope 将脚本插入到 Modernizr 脚本元素之前以及我的样式表之前。因为css3-multi-column.js必须包含在所有样式表之后,如果 Modernizr 将脚本添加到页面末尾,我会更喜欢。那可能吗?

这是我的代码:

Modernizr.load({
    test: Modernizr.csscolumns,
    nope: 'http://host.org/js/libs/css3-multi-column.js';
});

如果可能的话,这就是我想用 Modernizr 完成的:

if (!Modernizr.csscolumns) {
    var script = document.createElement( 'script' );
    script.type = "text/javascript";
    script.src = 'http://host.org/js/libs/css3-multi-column.js';
    $('body').append(script);
}
4

1 回答 1

1

我只是偶然发现了同样的问题,并查看了Modernizr ( yepnope.js ) 代码,这绝对不可能在页面末尾添加脚本。

所以,不幸的是,你的解决方案是好的。

另一种可能的解决方案是将Modernizr放在页面底部(但 IE8 会中断,请参阅此处的底部注释)?

此外,就我而言,我所有的样式表都在Modernizrcss3-multi-column.js插入的脚本之前,但它也不起作用。但是使用您的方法可以解决问题。使用您的方法,它在附加到. 所以问题不在于插入脚本的地方,而是其他地方? HEAD

于 2013-02-12T03:40:31.867 回答