根据浏览器在Yii中引用不同的js文件

时间:2012-10-12 09:22:05

标签: php javascript yii

我有2个js文件。虽然两者都做同样的事情,但是在IE 7上不起作用,因此我有2个不同的JS文件。如果浏览器是IE7而另一个在所有其他情况下被调用,我需要调用一个。

我在页面顶部有标准的Yii声明。

<?php
    Yii::app()->getClientScript()->registerScriptFile(Yii::app()->baseUrl . '/js/jquery-1.4.4.js');
    //etc....
?>

我在document.ready函数中尝试了以下内容。

var browserIE7 = (navigator.userAgent.indexOf("MSIE 7")>=0) ? true : false;
if(browserIE7){
    Yii::app()->getClientScript()->registerScriptFile(Yii::app()->baseUrl . '/js/IEjquery-1.4.4.js');
}else{
    Yii::app()->getClientScript()->registerScriptFile(Yii::app()->baseUrl . '/js/jquery-1.4.4.js');
}

然而,这不起作用。我以前从未需要这样做,因此很难搞清楚如何去做。

感谢任何帮助。

谢谢。

2 个答案:

答案 0 :(得分:5)

如果你想要一些js hack,你可以在你的html中使用如下来包含你的IE脚本版本

<!--[if lt IE 7]>
<script src="http://example.com/js/IEjquery-1.4.4.js"></script>
<![endif]-->

参考http://code.google.com/p/ie7-js/

答案 1 :(得分:2)

你试过在你的JS上执行php代码吗?或者我错过了一些东西......

尝试使用扩展程序Browser并在您的布局中使用它(或在Yii::app()->getClientScript()...代码附近的某处)