// Если вы не знали, то IE10 поддерживает HTML5/FileAPI: var reader = new FileReader; reader.readAsBinaryString(file); // error: Object doesn't support method or property "readAsBinaryString"
// Но, выход есть! var reader = new FileReader; reader.onload = function (evt){ var base64 = evt.result.replace(/^data:[^,]+,/, ''); var binaryString = window.atob(base64); // bingo! }; reader.readAsDataURL(file);
// http://jsperf.com/htmlescape-vs-goog-string-htmlescape // Если вам нужна самая быстрая функция htmlEspcae, то:
// (1) Просто и быстро var htmlEscape= (function (){ var _rhtml= /[&<>\"]/g, _map= { '&': '&', '<': '<', '>': '>', '"': '"e;' }, _replace= function (c){ return _map[c]; } ;
// (2) goog.string.htmlEscape -- быстро и очень быстро в Chrome/Node/V8 // http://closure-library.googlecode.com/svn/docs/closure_goog_string_string.js.html var googStringHtmlEscape = (function (){ var _ramp= /&/g, _rlt= /,
_rgt= />/g, _rquote= /\"/g, _rhtml= /[&<>\"]/ ;
return function (str){ // quick test helps in the case when there are no chars to replace, in // worst case this makes barely a difference to the time taken if( typeof str !== 'string' || !_rhtml.test(str) ) return str;
// str.indexOf is faster than regex.test in this case if( str.indexOf('&') != -1 ) str = str.replace(_ramp, '&'); if( str.indexOf('<') != -1 ) str = str.replace(_rlt, '<'); if( str.indexOf('>') != -1 ) str = str.replace(_rgt, '>'); if( str.indexOf('"') != -1 ) str = str.replace(_rquote, '"e;');