小编Jer*_*emy的帖子

我如何在Chrome控制台中使用ES6语法?

我试图在chrome控制台中编写一些ES6代码,但我遇到了一些错误.如何在控制台中运行ES6脚本?

例如,给定输入

let type='grizzle';
Run Code Online (Sandbox Code Playgroud)

控制台SyntaxError用消息记录a

在严格模式之外尚不支持块范围的声明(let,const,function,class)

如下面的截图所示

Chrome控制台响应的屏幕截图

javascript google-chrome ecmascript-6

12
推荐指数
1
解决办法
3089
查看次数

IE11是否删除了javascript条件编译?

我一直在使用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秒)的音频文件,这些文件应该以(伪)随机顺序播放,并在用户交互后单独播放.问题是多种多样的:

  • IE9的未记录限制为41个audio元素(无论是在HTML中声明还是在JS对象中声明).所有后续音频文件都无法加载和播放.(41个元素中的每一个都可以重新分配它的源,但是每一次重新分配也都会无声地失败.我很想看到这些错误背后的代码......)
  • 播放短音时IE10和IE11"口吃":它们只播放一小段时间,然后暂停,然后继续播放.对最终用户的影响是音频难以理解.(audios有preload="auto"并报告非零缓冲区.)

当然,没有实用的方法来检测这些问题,因此浏览器检测.我一般认为用户代理嗅探对于生产代码来说过于冒险; 这项@cc_on技术似乎更加强大.

我对IE9的解决方法是将应用程序状态sessionStorage序列化为第25个声音,然后重新加载页面并反序列化.

在IE10/11中,我的解决方法是以0音量播放最后90%的音频,这似乎迫使IE 实际缓冲文件.

javascript internet-explorer internet-explorer-11

11
推荐指数
1
解决办法
2818
查看次数