针对IE

IE支持使用HTC behavior的方式来在CSS中执行JS代码。

body {
  behavior:url(script.htc);
}

或者在低版本浏览器中可以使用expression方法来动态执行脚本。

width:expression(document.body.clientWidth > 800? "800px": "auto" );

针对Firefox

使用XBL

body {
  -moz-binding: url(script.xml#excute-id);
}

针对比较古老的浏览器

此方法需要服务器指定css或者其他被引入页面的样式文件的MIME为*/*

<!-- /*
alert('js code excuted.');
<!-- */

<!--
#normal-rules{	border:none;}

CSS在解释处理时会忽略掉<!–注释内容部分,而JS在执行处理中,会将<!–转成// 也就是JS的单行注释,单行注释会把后面的//删除,同时也删除了CSS代码。

把JS跟CSS写在同一个文件利于统一交付三方进行调用,虽然文件尺寸变大,但是请求数至少减半。

并且还能做到一些其他功能,例如在只允许修改CSS的三方系统中执行JS代码。