首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

yii中引来js和css文件

2012-08-25 
yii中引入js和css文件作者:zccst四、在视图层(../views/..)添加CSS文件或JavaScript文件Yii::app()-client

yii中引入js和css文件
作者:zccst

四、在视图层(../views/..)添加CSS文件或JavaScript文件

Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . "/js/TableView.js");Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . "/js/datechooser.js");Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl . "/css/datechooser.css");

批注1:在视图层引用与在控制层引用的方式一样。但在视图层中引用加载的要晚一些。
批注2:引用路径是使用baseUrl,而不是basePath。
批注3:关于参数CClientScript::POS_END,作用是延时加载,提高页面渲染效率。例如:
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . "/js/jqueryui/jquery-ui.min.js", CClientScript::POS_END);
全部参数一览:
CClientScript::POS_HEAD : the script is inserted in the head section right before the title element.
CClientScript::POS_BEGIN : the script is inserted at the beginning of the body section.
CClientScript::POS_END : the script is inserted at the end of the body section.
CClientScript::POS_LOAD : the script is inserted in the window.onload() function.
CClientScript::POS_READY : the script is inserted in the jQuery's ready function.
注:这些参数仅适用于加载js文件,不适用于加载css文件。

三、引入jquery核心部件
Yii::app()->clientScript->registerCoreScript('jquery');

批注:不论在页面中的何种位置引用,最终yii会将jquery.js文件放入yii的assets文件夹下。即/projectName/assets/82qg58/jquery-1.6.1.min.js。


二、在控制层(../controllers/xxController.php)添加CSS文件或JavaScript文件
public function init(){       //parent::init();       Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/css/my.css');    Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl.'/css/my.js');}


一、在../layouts/main.php中引入
1,直接引入

<!-- css --><link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/print.css" media="print" /><!-- 图片 --><link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/js/autocomplete/indicator.gif" /><!-- js --><script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/jquery.js"></script>


2,yii方式引入
<?php<!-- (一)简单用法 --><!-- js -->    Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . "/js/jqueryui/jquery-ui.min.js", CClientScript::POS_END);<!-- (二)复杂用法 -->if($this->user->id) {Yii::app()->clientScript->registerScriptFile(Yii::app()->createUrl('/account/info', array('format' => 'js')), CClientScript::POS_END);}if($this->user->id) {Yii::app()->clientScript->registerScriptFile(Yii::app()->createUrl('site/baseJs'));}?>


批注:在yii运行后,第一种在head中,第二种在body最后面,显然后者效率更高。但必须加载的js和css有必要写在head中。


3,区别



批注:至于为什么会有/assets/b729ab/js/jquery.js这样的文件生成,还在继续探索中。

热点排行