我试图在chrome控制台中编写一些ES6代码,但我遇到了一些错误.如何在控制台中运行ES6脚本?
例如,给定输入
let type='grizzle';
Run Code Online (Sandbox Code Playgroud)
控制台SyntaxError
用消息记录a
在严格模式之外尚不支持块范围的声明(let,const,function,class)
如下面的截图所示
我一直在使用javascript条件编译确定IE Trident引擎的版本:
var ieVersion = undefined;
/*@cc_on
ieVersion = Math.floor(@_jscript_version);
@*/
Run Code Online (Sandbox Code Playgroud)
这适用于IE8,9和10.在IE11中,条件评论的块不执行,除非我使用F12开发工具模拟IE10(在这种情况下它返回正确的值,11).
这很令人困惑,因为条件编译上 的MSDN页面指定它适用于Internet Explorer 11.(更新2015年2月3日:此页面进行了更新,明确规定其含量不.适用于IE11的标准模式),我没有发现任何信息网上表明IE11不应该支持有条件的意见.
有没有人有这方面的信息?任何人都可以在IE11中重现这种行为吗?
编辑:这与IE的<audio>
支持相关.我有一个网络应用程序需要播放大约50个短(~1秒)的音频文件,这些文件应该以(伪)随机顺序播放,并在用户交互后单独播放.问题是多种多样的:
audio
元素(无论是在HTML中声明还是在JS对象中声明).所有后续音频文件都无法加载和播放.(41个元素中的每一个都可以重新分配它的源,但是每一次重新分配也都会无声地失败.我很想看到这些错误背后的代码......)audio
s有preload="auto"
并报告非零缓冲区.)当然,没有实用的方法来检测这些问题,因此浏览器检测.我一般认为用户代理嗅探对于生产代码来说过于冒险; 这项@cc_on
技术似乎更加强大.
我对IE9的解决方法是将应用程序状态sessionStorage
序列化为第25个声音,然后重新加载页面并反序列化.
在IE10/11中,我的解决方法是以0音量播放最后90%的音频,这似乎迫使IE 实际缓冲文件.