Posts

Showing posts with the label Internet Explorer

Internet Explorer Scope Resolution

I have enclosed in only 5 steps JScript weirdness, hoping all precedent deliriums about functions, standards, and Internet Explorer, will make more sense now. Here there is the link to original HTML slides , I hope this will help everybody to have clearer ideas.

Defeat Internet Explorer - Can You?

While I was creating a stand alone implementation of the LSSP described in my last HTML5 sessionStorage project , I did some test and bench as every Agile developer should do. Well, what I have discovered, is that apparently Internet Explorer could perform some common task better than any other browser, at least in my good old Intel Centrino 1.6 Ghz. I have created a benchmark page able to freeze my Firefox 3.5.2, to ask me if I would like to continue an Array.join execution with an average score that points out my Internet Explorer 8 wins with a score under 300 milliseconds against Chrome, Firefox and Safari. As summary, is my Centrino dead or there's something we all did not consider about JScript engine? P.S. Opera 10 beta 2 seems to score about 130 milliseconds as average, good stuff!

The One With Microsoft Paying Users

You probably do not know what's happened today at about UTC lunch time. It has been just a quick twit from John Resig , that at least every follower instantly noticed the next Microsoft campaign pro Internet Explorer 8. The Fact Microsoft Australia launched a sort of " competition ", called Ten Grand . Apparently, starting from Friday 19th, a twit will be released each N hours, creating a sort of one day investigation to discover where the price is (in my opinion somewhere in the same page where the contest begins, assumption created by my idea about M$ "fantasy"). The Problem That Web Page literally insults other web browsers, even discarding, probably on purpose, Opera one. In few words, that game is only for Internet Explorer 8 Users . OK, OK, they are apparently desperate enough to pay users in order to have more market share, fair enough, but what is all this "fun" about others? You'll never find it using old Firefox You'll never find it ...

ExtJS And The Bloody TreePanel Arrow

First of all I am sorry for choose title, but I kinda lost dunno how many minutes to figure out what was wrong , and it was not me ! Please let me try to explain what was the requirement, and how I had to force ExtJS to act as I want, version 2.2.1 or 3.0RC2 , it does not matter. The Problem ... The reason you or your company choose ExtJS is most likely because of its Office $uite / Window$ look and feel, closer than many others to a proper Desktop Application, perfect under Adobe Air, and one step forward about stability, performances, and documentation, even with the old enemy: Internet Explorer 6 . Fair enough, it's a good library but, there is always a but, at the same time it does not replicate 100% same Window$ behaviors. As example, try to click Start and Run a prompt command, explorer . This is the typical Window$ file browser, something we deal with since ages, something still a user habit. ... In Details How does it work? It is really simple, we have a representation of o...

[ECMAScript 5] Do Not Remove arguments.callee !

Being subscribed in dunno how many developers mailing list, I completely forgot to follow up the arguments and arguments.callee discussion. Accordingly to this John post , is with extreme surprise that I am discovering how critical is the gap between programming language developers and programming languages active users. Even if I read more than once piece of SpiderMonkey or Google Chrome, I am part of programming languages users and I can tell you for sure that the decision to remove arguments.callee from the language will be a complete mess. The Main Aim Of ECMAScript 5: Do Not Break What We Have So Far Unfortunately, Internet Explorer will be broken , because named function persists in the scope , causing naming conflicts everywhere ! setTimeout(function f(){ alert(window.f); }, 1000); Above code will alert the function f in every Internet Explorer . Moreover, as you can read in one comme of John's entry, Internet Explorer has function interpretation "problems" , d...

Internet Explorer with V8 Engine :: A Partial Reality

Update now it works with Internet Explorer 7 and 8 with O3D plug-in enabled. Today, via ajaxian , I discovered the new Google O3D project and as a nerd first, and a developer after, I instantly read the API. Few seconds and I spot this: Use the V8 engine OK, OK, whatever code you read there will not instantly work ... you have to understand the library and how to retrieve the dreamed eval function to make JavaScript execution possible inside the extremely fast V8 engine. Obviously V8 integration is great with FireFox and other browsers, but a bit different in Internet Explorer. This limitation is about the DOM manipulation, something that would make IE a good browser, but everything else, executed via V8 engine and without browser engine references , will perform 5 to 100 time faster. Function creations, optimized loops, numbers, string manupulation, etc etc ... if we could use a little plugin to fully integrate V8 inside Explorer, we could all forget nowadays benchmark because it w...

Internet Explorer and its inefficient sort implementation

This is just a quick post about how much IE team cares about JavaScript performances ... // generate an array of 1000 elements var a = new Array(1000).join(",.").split(","), calls = 0; // call sort method incrementing the conter a.sort(function(a, b){ ++calls; // return zero, nothing should change return 0; }); // discover the monster alert(calls); Guess how many times Internet Explorer compare results? 17583 times, against a.length - 1 in other browsers. Nice stuff guys, I guess for big arrays a manual reimplementation could perform better, am I wrong?

Multiple Upload With Progress: Every Browser No Flash !!!

Image
Update: released official version in Google Code, cross browser, and easy to use. blog enry Ok guys, this is a quick and dirty entry in my blog. I need to write documentation, create the project in Google Code, explain better what I have done and how it works. I do not want to give you the zip right now because I have to change name (silly me do not check before) and to do last tests ... but basically, what I have created this week end, is a graceful enhanced multiple file upload manager compatible with Chrome, FireFox, Internet Explorer (5.5 or greater), Opera, Safari. The manager wrap an input type file and manages it allowing multiple files selection, where supported, or one after one insert with possibility to remove one or more file from the list. Everything is absolutely customizable, since the wrapper is entirely in CSS, the library has a language namespace for errors or messages, and events are created by developers. In those browsers were Ajax upload is not supported, the pro...

32 bytes, ehr ... 9, ehr ... 7!!! to know if your browser is IE

Update another clever trick from comments, which I will explain later: if(!+"\v1") // true only in IE if("\v"=="v")// true only in IE try{IE=window=!1}catch(e){IE=!0} it works, doesn't it? The reason is simple, if we consider "\v" as a vertical space, browsers interpreter that check in this way: !(+ 1 ) where "not one" is always false, considering that 0 is always casted as false, and every other number is casted as true. Internet Explorer will ignore the vertical space, trying to cast a "v" character into a number, thanks to the sign (plus or minus, it does not matter) // How IE interpreters the code !(+"v") // where isNaN(+"v") === true // and where NaN is implicitly casted as false About conditional comments I read a lot of comments in both Ajaxian and other places ... well, guys, this is a trick as conditional comment is. The day IE will interpret correctly the "\v" character, Opera or so...

Internet Explorer Object watch

Update As Luke suggested, there is a method remove in the watcher that should solver leaks problem while the new version should be supported by most recent Opera, Safari, FireFox, and Internet Explorer. Main updates: the watcher is always another object and not the original one to safely destroy the watcher use its destroy method and then delete it ---------------------------------------------- We all complain about IE and its non-standard attitude, this time I would like to introduce a non standard feature, as Object.prototype.watch is, for Internet Explorer. What is watch and why we need it The watch method allows validation, control, monitoring, over a generic object. This means that we can control properties assignment with one, or more, callbacks. var man = {}; man.watch("name", function(propertyName, oldValue, newValue){ // propertyName: name // oldValue: undefined if it is the first time, the old one otherwise // newValue: new assigned valu...

Internet Explorer Security Hole - A Better Example

Again, about the security hole I talked about last posts, but this time with a really simple example . How does the example work Open Internet Explorer, whatever version Go in this page Write a fake user name and a fake password, or a fake email address and a password Click Submit What does the example do Emulates user actions via javascripts with some version of IE, it could be able to grab both fields values in any case, it demonstrates you that every site could steal your compiled fields in every other site, if the autocomplete option is not forced to be disabled What could do a malicious, and hidden, code steal your data steal your email steal your credit card information (a really famous company, as example, suffers this problem, so somebody could steal credit cards details of million of people) steal your details steal your searches via common search engines etc, etc More details in my old post I wrote last Saturday , the one th...

Internet Explorer 6, 7, or 8 exposes users data via JavaScript

Ok, ok, I know these are Google Chrome dedicated days , but how can be possible that my last post did not receive attention at all? Maybe with this title somebody will read more carefully what I wrote few days ago ... or maybe not, who knows? :?