Browsing Posts tagged IE

I'd imagine a somewhat wide applause echoed from the front-end community when Microsoft announced in Jan 2015 that they were working on a ground-up new browser codenamed Spartan.

Over years Internet Explorer has developed a stigma amongst front-end developers. Microsoft made some attempts in IE10 and IE11 to align itself with already adopted W3C standards but decades of slow decay from wider internet standards contributed to the browsers lack of adoption amongst a rapidly evolving, standards compliant set of Webkit/standards based browsers.

Perhaps, the best news for me is the decision to use the Webkit engine. In some respects it's not the browser necessarily that limits front-end development, but the rendering engine. Spartan now joins the likes of Chrome and Safari in adopting Webkit. To be honest, all browsers should just adopt Webkit so more focus can be applied to generating amazing new content rather than working on x-browser compatibility issues.

Browser Engine
Chrome Webkit (-webkit)
Safari Webkit (-webkit)
Spartan! Webkit
Firefox Gecko (-moz)
Opera Presto/Blink (-o)
Internet Explorer Trident (-ms)

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/24/d152177141/htdocs/techblog.tonycollings.com/wp-content/plugins/code-highlighter/geshi.php on line 2147

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/24/d152177141/htdocs/techblog.tonycollings.com/wp-content/plugins/code-highlighter/geshi.php on line 2147

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/24/d152177141/htdocs/techblog.tonycollings.com/wp-content/plugins/code-highlighter/geshi.php on line 2147

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/24/d152177141/htdocs/techblog.tonycollings.com/wp-content/plugins/code-highlighter/geshi.php on line 2147

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/24/d152177141/htdocs/techblog.tonycollings.com/wp-content/plugins/code-highlighter/geshi.php on line 2147

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/24/d152177141/htdocs/techblog.tonycollings.com/wp-content/plugins/code-highlighter/geshi.php on line 2147

Huh! This is an interesting dilemma I came across today. Take some fairly standard PHP export script:

  1. span style="color: #ff0000;">"Content-type: application/vnd.ms-excel""Content-Disposition: attachment; filename=some-filename.xls");
  2.  

... set some headers and print($sMyCSVFile);. Well NOT so much with Internet Explorer. Works perfectly with everything else.

Turns out that there is a known issue opening documents over SSL with Internet Explorer. (MSDN Article: 316431) and it's all to-do with caching! If EITHER of the following headers exist then the script will fail:

  1.  

The answer; it turns out, is relatively easy. Simply set :

  1.  

.. Voila! There are also some nice examples of forcing file-download on php.net (http://us3.php.net/manual/en/function.readfile.php)


Further Reading:

... another Microsoft 'feature'. This time though it's proved pretty useful and at a quick glance looks to be a pretty powerful language subset. To quote the Wiki "... (HTCs) are a nonstandard mechanism to implement components in script as Dynamic HTML (DHTML) "behaviors" in the "Microsoft Internet Explorer" web browser..."

For most people like me HTC has probably been limited to Angus Turnball's most excellent IE PNG Fix helping millions solve that annoying CSS problem of no alpha transparency support for PNG's in older versions of IE.

Whilst doing a favor for a friend and giving his website some spit and polish I decided to utilize PNG's alot to achieve some nice 'Apple-esk' aesthetics. Naturally this could potentially lead to some head-splitting CSS issues, but thanks to the PNG fix wonder fix it's a cake walk. Anyway, as these things do, it started me on an internet surfing tangent to try and find out a little about the humble HTC file.

Basically it's a bunch of script that can be executed as a component when assigned to the DOM and there are several ways of assigning it. By adding a 'behaviour'. Typically this is in the form of Microsoft's behaviour: CSS attribute. i.e. <LI STYLE="behavior:url(hilite.htc)">Foo Bar</LI>, which gets me thinking; who came up with Foo Bar !?

BUT, there are other ways of implementing behaviours. Using Javascript is another example (admitedly this is a Microsoft JS feature only, but seeing how this only affects IE anyway !). addBehavior(); and there a bunchof other features too. Much like Microsoft DXImage filters though progid:DXImageTransform.Microsoft.Alpha(sProperties) it will probably fall by the wayside, used only on occasion to, ironically, correct non-standard CSS rendering issues in IE

.