有人知道一种干净的方式来设置不同版本的jQuery吗?这取决于浏览器,集成了Yii的使用?就我而言,我想将jQuery 2加载到除IE 8-之外的所有浏览器。
我在配置/main.php中使用了这个clientScript
:
'clientScript'=>array(
'packages'=>array(
'jquery'=>array(
'baseUrl'=>'//ajax.googleapis.com/ajax/libs/jquery/2.0.3/',
'js'=>array('jquery.min.js'),
),
)
),
Yii 1.1.14 携带 jQuery 1.8.3,调用 registerCoreScript()
时会被引用到页面中:
$cs = Yii::app()->clientScript;
$cs->registerCoreScript('jquery.ui');
,因为 jQuery 被注册为 jQueryUI 的依赖项。但它没有,因为我的clientScript
,如上所述。因此,所有浏览器都获得jQuery 2,问题是它不支持IE 8-。
还可以选择使用 IE 注释,就像:
<!--[if (gte IE 6)&(lte IE 8)]>
所以,这里有一个问题:我想避免用评论来解决问题,让 Yii 为我做这项工作,但是如何呢?
您可以使用 CHttpRequest::getBrowser()
$browserInfo=Yii::app()->request->getBrowser();
if (($browser['Browser']=="MSIE")&&(floatval($browser['version'])<9)){
// register legacy scripts
}else{
//register normal scripts
}
为了使其正常工作,php.ini 中的 browscap 配置设置必须指向系统上 browscap.ini 文件的正确位置。
但最好的决定可能是 - 不支持IE 9及更早版本