Why are cookies unrecognized when a link is clicked from an external source (i.e. Excel, Word, etc…)

This is because MS Office is using Hlink.dll component to lookup if the link is Office document or something else. MS Office expect to open the document linked within documents without the aid of external browser (using Hlink.dll component of IE6). If session cookie protects website Hlink naturally is being redirected to login page and … Read more

iframe shimming or ie6 (and below) select z-index bug

You don’t have to hide every select using a loop. All you need is a CSS rule like: * html .hideSelects select { visibility: hidden; } And the following JavaScript: //hide: document.body.className +=’ hideSelects’ //show: document.body.className = document.body.className.replace(‘ hideSelects’, ”); (Or, you can use your favourite addClass / removeClass implementation).

What bug does zoom:1; fix in CSS?

This provides an internal property known as hasLayout in Internet Explorer versions 7 and lower. The definitive article on the subject is here: http://www.satzansatz.de/cssd/onhavinglayout.html A lot of Internet Explorer’s rendering inconsistencies can be fixed by giving an element “layout.” In this article, the authors focus on some aspects of this complicated matter. “Layout” is an … Read more

Getting an absolute URL from a relative one. (IE6 issue)

How strange! IE does, however, understand it when you use innerHTML instead of DOM methods. function escapeHTML(s) { return s.split(‘&’).join(‘&amp;’).split(‘<‘).join(‘&lt;’).split(‘”‘).join(‘&quot;’); } function qualifyURL(url) { var el= document.createElement(‘div’); el.innerHTML= ‘<a href=”‘+escapeHTML(url)+'”>x</a>’; return el.firstChild.href; } A bit ugly, but more concise than Doing It Yourself.

Running Internet Explorer 6, Internet Explorer 7, and Internet Explorer 8 on the same machine

I wouldn’t do it. Use virtual PCs instead. It might take a little setup, but you’ll thank yourself in the long run. In my experience, you can’t really get them cleanly installed side by side and unless they are standalone installs you can’t really verify that it is 100% true-to-browser rendering. Update: Looks like one … Read more

getElementsByClassName() doesn’t work in old Internet Explorers like IE6, IE7, IE8

IE6, Netscape 6+, Firefox, and Opera 7+ copy the following script in your page: document.getElementsByClassName = function(cl) { var retnode = []; var elem = this.getElementsByTagName(‘*’); for (var i = 0; i < elem.length; i++) { if((‘ ‘ + elem[i].className + ‘ ‘).indexOf(‘ ‘ + cl + ‘ ‘) > -1) retnode.push(elem[i]); } return retnode; … Read more