Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Blocking modern IE?

Blocking IE is definitely not best practice, but it's something in my requirements for an existing application. What's the most effective way to do that since conditional comments aren't available in IE 10? For IE 9 and below this will work:

<!--[if IE]>
<script type="text/javascript">
window.location = "/IEblocked.html";
</script>
<![endif]-->

Assuming there's a best practice JavaScript solution, what gotchas might I find? I'm wondering if there might be issues around the following:

  • Order of events firing
  • iframe elements that are beyond my control
  • Precedence of a JS solution in the context of other <script> tags
  • Scripts loaded via the document.write('<script type="text/javascript" src="foo.js"></script>'); method.

I have a feeling a lot of folks might be compelled to shout out "use Modernizr" and "Are you crazy, don't put scripts in the DOM that way!", unfortunately the application is large and some enhancements are outside the scope at this point.

like image 657
blong Avatar asked Feb 04 '13 15:02

blong


People also ask

Can I still use Internet Explorer after June 2022?

From 15th June 2022, Microsoft Edge will replace Internet Explorer on the most recent versions of Windows 10. This means that the Internet Explorer application will no longer be supported and users will be redirected to Edge if they try to access the app.

Should I turn off Internet Explorer 11 in Windows features?

If you're not sure if you need Internet Explorer or not, I would recommend simply disabling Internet Explorer and testing your normal sites. If you run into issues, worse-case, you can re-enable the browser. However, for most of us out there, you should be just fine.


1 Answers

Well, IE is the only browser supporting client side VBScript.

So just add this to your pages: (except in IEblocked.html itself of course)

<script type="text/vbscript">
Document.Location = "IEblocked.html"
</script>

I know for a fact it's working in IE9 and below. This comment pretty much proves it's still working just fine in IE10 and as for the future I came across this blog post by Eric Lippert: Rumours of VBScript's Death Have Been Greatly Exaggerated which contains the following paragraph:

We will continue to support VBScript and JScript for the foreseeable future. Obviously VBScript, JScript, WSH, etc, must continue to be shipped with the operating system forever, as huge amounts of existing business-critical code depends upon them. To characterize that as "dying a slow death" is excessively melodramatic. We expect that the unmanaged COM scripting languages will continue to be useful for many, many years. The Visual Studio Sustaining Engineering Team presently is responsible for VBScript, JScript, Windows Script Components, Windows Script Host, etc.

Although posted over 8 years ago, I strongly belive we still have long years of VBScript existence in the core of Windows, and future versions of Internet Explorer will keep using it.

To sum things up, I have contacted Eric directly and asked "How long will VBScript will be supported, as client side language, in Internet Explorer versions?". In response, he said:

There are still many corporate clients who depend on VBScript in the browser, so MSFT would be foolish to drop support for it. It is very cheap to support, and losing good will of even a small number of customers is expensive.

He's no longer working in Microsoft so his answer is not official but it's the closest I can get and not years old blog post but directly from the source. All things considered, I can conclude that using the above code is going to work for many more years to come. :)

like image 149
Shadow Wizard Hates Omicron Avatar answered Nov 02 '22 13:11

Shadow Wizard Hates Omicron