我正在使用Modernizr来检测用户正在运行的浏览器支持的功能,到目前为止一切顺利.但在测试base64兼容性时,我遇到了理论上的问题.这个支持的补丁在这里详细介绍,并且可以工作 - 除了IE8的奇怪情况 - 它只允许最高32KB的base64编码图像.
我真的不想在我的JS文件中嵌入一个32KB长的base64字符串,它会增加一些疯狂的膨胀.那么,我可以使用JS创建一个32KB的有效图像吗?我正在考虑在字符串中重复某种模式,直到它达到32KB的长度,这种事情.或者可能使用现有的小字符串(如Modernizr补丁中的字符串)并在最后添加垃圾数据,这仍然会产生有效的图像.
除了如何操作现有图像之外,我对base64编码几乎一无所知.有没有人有任何想法?
你好,互联网的人,我一直在讨厌这个...并且已经看过几个类似的贴子,但我似乎无法弄清楚这一点:
HTML5输入字段验证CSS适用于Firefox,Chrome ......但是唉,不是在IE8中...我的目标受众中的很多人都将使用IE8.
...是的:我正在使用Modernizr,我使用Initializr获取页面模板和CSS ...我有点困惑为什么我无法在IE8中正常工作.
这是我的测试页面的链接: 测试html5页面
输入字段在正确输入之前为红色,然后在输入有效帐号时验证将变为绿色,例如:50011111111
HTML5代码如下:
<label for="account">Account Number: </label>
<input id="account" name="inputAccount"
placeholder="input billing account number"
pattern="/(^500)|^\d{11}"
required
autofocus
type="text"/>
Run Code Online (Sandbox Code Playgroud)
关于什么可能是一个相当简单的修复建议的任何建议将非常感激!
我有以下内容:
Modernizr.load([
{
load : '//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js',
complete : function () {
if ( !window.jQuery ){
Modernizr.load('/js/jquery-1.6.2.min.js');
}
}
},
{
load : ["/js/someplugin.js", "/js/anotherplugin.js"],
complete : function()
{
// do some stuff
}
},
{
load: ('https:' == location.protocol ? '//ssl' : '//www') + '.google-analytics.com/ga.js'
}
]};
Run Code Online (Sandbox Code Playgroud)
我读到Modernizr加载脚本Asyncronously.但在上面的例子中,哪些是异步加载?
是否所有以下内容都是异步加载的?
或者它是异步和有序加载的组合,如下所示:
我很难测试它是哪种情况.
从网络面板看,当您通过Modernizr.load加载脚本时,它实际上并不会阻止$(document).ready().
所以理论上,假设我通过Modernizr添加json2.js,而另一个开发人员试图在$(document).ready()中使用JSON.parse,他们的脚本实际上可能会因为竞争条件而中断.
是否可以在不试图警告所有代码签到的情况下解决这个问题?
我想在网页上使用一些新的HTML5表单属性和输入类型.有些浏览器已经支持它们,有些浏览器不支持它们.这就是为什么我想使用Modernizr - 这就是我的麻烦开始.
据我所知,Modernizr本身并不是一个polyfill,而是一个可以测试浏览器是否能够使用某些新的HTML5/CSS3的脚本.如有必要,可以加载polyfill,"模拟"这些功能,以便它们可以在非支持/旧版浏览器中使用.这是正确的我猜?
关于测试/装载:使用Modernizr加载polyfill的正确或最佳方法是什么?
在文档中我发现了这个:
Modernizr.load({
test: Modernizr.geolocation,
yep : 'geo.js',
nope: 'geo-polyfill.js'
});
Run Code Online (Sandbox Code Playgroud)
但是有些页面也是这样的:
if (Modernizr.touch){
// bind to touchstart, touchmove, etc and watch `event.streamId`
} else {
// bind to normal click, mousemove, etc
}
Run Code Online (Sandbox Code Playgroud)
另外,我如何才能真正了解如何检测这些功能?Modernizr.geolocation对于每个特征检测,肯定存在某些东西吗?
在Modernizr GitHub存储库中,还有许多用户贡献的功能检测.如何在我的Modernizr版本中实现这些?或者只是使用他们的建设者是最好的?
在Safari中,HTML5表单验证有效,但没有用于显示错误消息的UI.基本上,该功能只实现了一半.这就是为什么Modernizr在Safari中给出了误报,就像在这里已经提到的那样:https ://github.com/Modernizr/Modernizr/issues/266 显然有人用这样的自定义测试来解决这个问题,但我仍然不明白如何使用它.1
我的网站使用Modernizr,需要HTML5Shiv和PrintShiv.不使用Modernizr加载这些shivs,而是通过IE条件加载它们是否有任何性能优势?显然使用Modernizr更干净,但我专注于性能.
我是Modernizr的新手,我只是想找一种简单的方法来检查浏览器的整体兼容性.我已经生成了一个Modernizr脚本来测试我的Web应用程序中最基本的组件,它高度依赖于HTML5,CSS3和现代JavaScript方法.有没有办法同时运行所有这些测试?查看文档,我看到有很多方法可以逐个测试每个功能,但我没有看到一次完成所有功能的方法.我希望做这样的事情:
伪代码
if (Modernizr.testAll()) {
// Load site
} else {
// Redirect to compatibility page
}
Run Code Online (Sandbox Code Playgroud) 我正在学习angular2并使用ng2-bootstrap构建我自己的自定义组件.我想使用modernizer来检测浏览器本身支持的表单输入.
我正在使用webpack来构建我的项目.我已经成功配置了它.
我到现在所做的是:
我不知道如何在我自己的自定义组件中使用Modernizr.inputtypes.date?我们如何在组件中访问Modernizr变量?
任何帮助深表感谢.
我正在尝试评估一个包含 power 的表达式,字符串为**。即eval("(22**3)/12*6+3/2")。问题是 Internet Explorer 11 无法识别这一点并引发语法错误。我应该使用哪种聚酯填充材料来克服这个问题?现在我正在使用Modernizr 2.6.2.
示例方程是,
((1*2)*((3*(4*5)*(1+3)**(4*5))/((1+3)**(4*5)-1)-1)/6)/7
((1*2)*((3*(4*5)*(1+3)**(4*5))/((1+3)**(4*5)-1)-1)/6)/7*58+2*5
(4*5+4-5.5*5.21+14*36**2+69/0.258+2)/(12+65)
Run Code Online (Sandbox Code Playgroud)
如果无法做到这一点,有哪些可能的替代方案?
javascript modernizr polyfills internet-explorer-11 ecmascript-2016
是否可以检测浏览器是否支持input type="date"用placeholder?
modernizr ×10
javascript ×6
html5 ×4
jquery ×3
polyfills ×2
angular ×1
asynchronous ×1
base64 ×1
data-uri ×1
html ×1
performance ×1
yepnope ×1