Conditional SSI
January 06, 2005
Web Building
I was having trouble writing a javascript that sniffs the browser for IE or non-IE, then selects a server side include (SSI) based on the result.

It turned out that you cant do that with javascript: first of all it seems to mis-read the include string:
document.write('<!--# include virtual="includes/safety.htm" -->');

The browser sees this as comment and lops everything off after the (' even though the string has quotes around it. If I use a \ to escape the ! as \!, then it simply writes the whole string out to the page, rather than interpreting it. Apparently this is because SSI's are evaluated on the server, so they are already executed before the browser renders the page - so by the time my page gets rendered, it's too late.
Ads by Google

Posted by ellen at January 06, 2005 06:44 PM
Many thanks to glenngv of for help with this.
Here is the code I ended up using, and it works great:

<!--#if expr="${HTTP_USER_AGENT} = /MSIE/" -->
<!--# include virtual="includes/safety.htm" -->
<!--#else -->
<!--# include virtual="includes/safety_nonIE.htm" -->
<!--#endif -->

This chooses a server-side include based on the user agent.

For more information on this see these links:

Conditional SSI by John Miller
Webmaster's Guide to Server Side Includes: Conditional SSI

and Apache SSI: conditional expressions

Ads by Google

Ads by Google

 RSS   |   Contact Me

Ads by Google