Yii - 如何根据浏览器注册脚本



有人知道一种干净的方式来设置不同版本的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及更早版本

最新更新