Question

I'm writing JSP pages and using Tomcat, and it needs to work for IE 7 in addition to Firefox and Chrome (client needs).

In my program, I include both pieces of code. It works properly for non-IE browsers.

My problem is that CODE A does not work properly for IE, in that it treats it like a comment rather than a conditional comment that it should be reading. Any idea why this would happen and how to fix it?

<script type="text/javascript">

 ...

 <!-- CODE A -->
 <!--[if IE]>
   url = "http://" + "..." + "&var=1";
 <![endif]-->

 <!-- CODE B -->
 <!--[if !IE]> -->
   url = "http://" + "..." + "&amp;var=1";
 <!-- <![endif]-->

 ...

</script>
Was it helpful?

Solution

Conditional HTML comments only work in HTML. JavaScript is not HTML. Rather use conditional JS comments in JS:

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

(only IE will interpret the ! which effectively makes it true)

Then you can use it as follows

if (IE) {
    url = "http://" + "..." + "&var=1";
} else {
    url = "http://" + "..." + "&amp;var=1";
}

Feature detection should however be preferred in JS.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top