Big Issue with IE8 & Mouse Move
Posted by Tim in Uncategorized on February 6, 2011
I first discovered this issue a while ago but had forgotten about it until it bit me again last week. So I finally decided to do a blog post about the issue.
There are a bunch of posts around the web documenting how IE (and some other browsers) fire the mouse move event even when there has been no movement (see here).
Well this post is about a major issue with Internet Explorer 8 that can cause you a big headache when trying to develop any kind of web application that uses the mouse move event.
Just to clarify – This is an issue only during development and should not effect your site after that.
The issue occurs whenever you are working with IE8 AND the Developer Tools Console and log something to the console in the mouse move event. Under these circumstances the mousemove event will fire continuously instead of just every so often. This causes IE8 to either lock up because of the massive number of mouse move events that are being fired or it will cause your code to behave strangely because of the large number of extra events.
To see an example of the issue you can open this page in IE8. Warning – It may lock up IE8 when you have the console open.
When you first open the example it will not be using the console so you should see normal mousemove events. Every 5 seconds it will switch between using the console and not using it. The problem will become immediately apparent when viewing the page with the Developer Tools open and the mouse over the page when the timer hits the console.log time period. The message will change and IE8 may become unresponsive.
The only way to avoid this issue is to not use console.log in an onmousemove event in IE8.
I hope this post will help others avoid the headaches I have experienced because of this issue.
TextboxList
Simplest description is that TextboxList is a control for organizing/controlling a list of data in a HTML Text Box.
But, things are never that simple . . .
This started off as a simple project to refactor/optimize the Proto!MultiSelect control from http://interiders.com/ but it grew into something much more.
You will really need to check out the API Documentation and the Demos to really understand what TextboxList is capable of.
But basically everything is an option
Just a few of the choices:
- with or without autocomplete
- ajax or non ajax
- customizable keys to select and/or add items
- customizable regular expressions for matching/highlighting
- and much more . . .
I have tagged it as version 0.5 even though there are a couple of options that I haven’t finished yet.
You can download a minified version here
If you run into any issue please let me know by using the issue tracker on GitHub.
If you use it please send me an email. I’d like to know how/where it is being used.
Prototype based tag cloud.
ProtoCloud is a new Prototype based tag cloud component that I’m working on. Demo / GitHub Project
It is still a work in progress, but it is at a point where I can show a demo.
Current features/options:
- Dynamically named data attributes for using different data sets
- Font size scaling based on tag rank (minimum / maximum specified in percentage)
- Optional Color scaling based on tag rank (customizable minimum / maximum / base color)
- Uses Prototype Templates for building the href for individual tags, or optionally directly specify the href on a per tag basis
- Supports Auto sizing the container to the number of tags
- Supports automatically removing lower ranked tags to fit the entire cloud into a specific container size
- Uses effects when showing the cloud
There will be more features/options added as this is still a work in progress.
Current Requirements:
Chrome Frame – On Second thought
Posted by Tim in Uncategorized on September 29, 2009
After some more thought, this may not be that great an idea. Short term with IE6 I still think it would be fantastic, but it could cause some even bigger problems long term.
Right now we have to deal with supporting different browsers for our web applications (IE being the worst/hardest to deal with) and this plugin would make things much easier on developers in the short term. But long term this could cause more issues because the number of combinations we would need to support/troubleshoot could increase exponentially. IE/Chrome, IE/FF, IE/Opera, FF/Chrome, Opera/Safari etc., and it could keep increasing as individual websites decide to create their own rendering engine plugin (like webkit with one extra feature that they want).
This would put developers in an even worse position. You would not only have to design for a browser, but take into account that browser’s renderer inside of another browser (and all the bugs that would create). Instead of just designing/developing/troubleshooting/supporting our apps on 2, 3, or 4 browsers we would then be in a position of needing to track down issues with 10′s or possibly even 100′s of combinations.
To sum up, While I love the idea of not needing to spend 50% or more of my time trying to track down and fix issues with IE (especially 6, 8 is a big improvement but still behind), this just may not be worth it in the long run.
Google Chrome in IE :)
Posted by Tim in Uncategorized on September 23, 2009
I personally think this is a fantastic idea. Hopefully it picks up steam (at least for IE6). Or at the minimum forces Microsoft to start adding needed features to IE. Like Canvas, rounded corners, etc.
One place I see that this can be very useful is that in a lot of corporations IT can not upgrade users from IE6 because of internal applications that won’t work in newer browsers. And most are also hesitant to install another browser (Like Firefox, Safari, Chrome, or Opera) because of the increased training support costs for there users.
With this addon they can keep IE6 but allow some more advance web applications to run by simply having the app’s developers insert a tag into there html.
Prototype Form.Observer Enhancements
Posted by Tim in Uncategorized on September 22, 2009
I added an enhancement to Form.Observer in my fork of Prototype. This link will take you to the wiki page detailing all of the functionality.
The main purpose of the enhancement is to do the following:
- passes the changed element(s) as an array to the callback function
- try to handle the dropdown select hover issue in Firefox
- passes the form data back to the callback function as an object instead of a string to make it easier to access the values
This isn’t a perfect change, for example I haven’t gone through and optimized it for performance (because it is fast enough for my current needs). Possibly in the future I will go back to improve the performance and functionality.
Prototype fork
Posted by Tim in Uncategorized on September 22, 2009
I try to maintain my own fork of the Prototype trunk on github. The main purpose of this fork is to keep some basic quirks mode support in the newer versions of the Prototype framework while transitioning old pages away from quirks.
Besides the basic changes to keep quirks mode working I also sometimes add new features/functionality. The description of these features can be found on the wiki page of my fork.
Prototype – this site
Yes, I know this site is using jQuery instead of Prototype (which I do most of my development in). I was lazy and just used a pre-made template.
Eventually I’ll get around to making my own template and may use prototype for it. But I’ll do it by rewriting this template into something that uses Prototype so I can learn jQuery and php in the process.
Vacation Prank
Posted by Tim in Uncategorized on September 22, 2009
A look at what some coworkers did to my desk when I went on vacation earlier this year.
It took me about 10 minutes to stop laughing when I saw it.
The cleanup wasn’t too bad except for the keyboard (they wrapped each key individually.
First Post
Posted by Tim in Uncategorized on September 19, 2009
This site will mainly be used for posting different programming oddities and solutions that I run across.
Since I just created the site, of course there is nothing here yet. I hope to update it pretty regularly, but who knows I may get distracted.
On occasion I may also post some non programming items, but we’ll see.

