user295292
user295292

Reputation: 200

disable javascript on ie browsers

is there a way to disable a certain script for all ie browsers?

Upvotes: 0

Views: 3238

Answers (4)

Dan Diplo
Dan Diplo

Reputation: 25339

You could not include the javascript at all for IE browsers using Microsoft's recommended way of inserting a conditional comment:

<!--[if !IE]>
<script src="myscript.js" type="text/javascript"></script>
<![endif]-->

or simply wrap the code you want to exclude in the comment.

Upvotes: 1

xavierm02
xavierm02

Reputation: 8767

If you're speaking of IE 6, you can crash it by calling this function :

function crash_IE6() {for(x in document.open);}

Seriously, the most use way of deteting IE is checking the presence of document.all... but it still isn't a good thing. You should nerver check what browser your script is running on... you should just check the presence of the needed methods.

Upvotes: -2

Nick Craver
Nick Craver

Reputation: 630389

I wouldn't recommend this, but:

if(!$.browser.msie) {
  //non IE script
}

I would fix the script to work in IE, or exclude it based on some feature the browser doesn't support...not just because it's IE. With any browser a feature could be added via an update tomorrow, and your script would still exclude it. See $.support for more on feature detection.

Excluding something from running because "it isn't supported" is a perfectly valid scenario. However, excluding something because "IE doesn't support it...when I wrote this code" isn't a good approach. Instead, check if the feature that you need is present, and the user gets the richest experience possible in their current browser.

Upvotes: 1

BalusC
BalusC

Reputation: 1108712

You can make use of conditional compilation to determine if the client is using MSIE.

var IE = /*@cc_on!@*/false;

which can be used as

if (IE) {
    // IE.
} else {
    // Others.
}

Only in IE, the ! will be compiled and taken in the expression, resulting in a new expression !false, which is logically true. This works better than $.browser.msie because it can be fooled by the useragent and also better than document.all because it would affect certain Opera versions as well.

That said, what is it you're trying to disable? You can on the other hand also make use of feature detection. Here's a discussion about this: Browser detection versus feature detection

Upvotes: 5

Related Questions