2017-02-26 50 views
0

您好我的项目正在与reactjs和webpack,加载网站时,如果运行在不支持reactjs或webpack的旧浏览器,我不能显示我的浏览器不支持消息(我检查支持与modernizr图书馆)。有没有办法让我显示一条消息,并在他们加载之前使用modernizr?也许以某种方式使用可以在首先加载的html文件中使用modernizr的脚本?任何答案都会受到欢迎! (这需要在所有浏览器上运行)。谢谢您的帮助!不能显示浏览器支持消息

回答

0

如果您确切知道您使用的是哪些功能,而旧版浏览器不支持,则可以选择加载“polyfills”文件。

为了达到这样的效果,首先需要为polyfills创建一个单独的包文件,如果浏览器不支持所需的功能,则必须加载它们。这最后一步需要你在你的html文件中有一些模板。

在你的WebPack条目:

polyfills: [ 
    'babel-polyfill', 
    'whatwg-fetch' 
] 

在你的插件:

new HtmlWebpackPlugin({ 
    template: './index.ejs', 
    filename: '../index.html', 
    inject: false 
}) 

在你index.ejs文件:

<script> 
var newBrowser = (
    'fetch' in window && 
    'Promise' in window && 
    'assign' in Object && 
    'keys' in Object 
); 

var scripts = []; 
if (!newBrowser) { 
    scripts.push('<%=htmlWebpackPlugin.files.chunks.polyfills.entry%>'); 
} 

scripts.push('<%=htmlWebpackPlugin.files.chunks.vendors.entry%>'); 
scripts.push('<%=htmlWebpackPlugin.files.chunks.app.entry%>'); 

scripts.forEach(function(src) { 
    var scriptEl = document.createElement('script'); 
    scriptEl.src = src; 
    scriptEl.async = false; 
    document.head.appendChild(scriptEl); 
}); 
</script> 
+0

我想是不支持浏览器,只是为了显示一条消息,我不支持它,我的问题是,我不知道我不支持它,因为我不能使用库,如modiernizr之前我的webpack加载 –