zoukankan      html  css  js  c++  java
  • yii引入js文件

    作者:zccst 

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

    Php代码  收藏代码
    1. Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . "/js/TableView.js");  
    2. Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . "/js/datechooser.js");  
    3. 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核心部件 

    Php代码  收藏代码
    1. Yii::app()->clientScript->registerCoreScript('jquery');  


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


    二、在控制层(../controllers/xxController.php)添加CSS文件或JavaScript文件 

    Php代码  收藏代码
    1. public function init()  
    2. {     
    3.     //parent::init();     
    4.     Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/css/my.css');  
    5.     Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl.'/css/my.js');  
    6. }  



    新增: 
    在控制层,还可以在ActionIndex中引入,而且还可以引入别的module文件夹中的js/css文件。甚至是任意文件夹下的js/css文件 

    Php代码  收藏代码
    1. public function actionIndex(){  
    2.         $modify,$reg = some_value;  
    3.         $js = $this->renderFile($this->getInstallViewPath(). '/asset/install.js',array('reg_mp'=>$reg), true);  
    4.         $js = $this->renderFile($this->getViewPath() . '/assets/install_params.js', array('modify' => $modify), true);  
    5.           
    6.         $cs = Yii::app()->clientScript;  
    7.         $cs->registerScript('asset/install', $js, CClientScript::POS_END);  
    8.         $cs->registerCssFile(Yii::app()->baseUrl . '/css/launch_feed.css');  
    9.         $cs->registerScript('assets/install_params',$js,CClientScript::POS_END);  
    10.         $cs->registerScriptFile(Yii::app()->baseUrl . '/resources/jquery.form.js');  
    11.         $cs->registerCssFile(Yii::app()->baseUrl . '/css/install_params.css');  
    12.   
    13.         $this->render('xxx');      
    14.     }  
    15.   
    16. public function getInstallViewPath() {  
    17.         return $this->getModule()->getBasePath().'/../operations/views';  
    18. }    




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

    Html代码  收藏代码
    1. <!-- css -->  
    2. <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/print.css" media="print" />  
    3. <!-- 图片 -->  
    4. <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/js/autocomplete/indicator.gif" />  
    5. <!-- js -->  
    6. <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/jquery.js"></script>  



    2,yii方式引入 

    Html代码  收藏代码
    1. <?php  
    2. <!-- (一)简单用法 -->  
    3. <!-- js -->  
    4.     Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . "/js/jqueryui/jquery-ui.min.js", CClientScript::POS_END);  
    5.   
    6.   
    7. <!-- (二)复杂用法 -->  
    8. if($this->user->id) {  
    9.         Yii::app()->clientScript->registerScriptFile(Yii::app()->createUrl('/account/info', array('format' => 'js')), CClientScript::POS_END);  
    10.     }  
    11.   
    12.     if($this->user->id) {  
    13.         Yii::app()->clientScript->registerScriptFile(Yii::app()->createUrl('site/baseJs'));  
    14.     }  
    15. ?>  



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


    3,区别 



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

  • 相关阅读:
    创建窗口
    文件映射
    匿名管道
    MFC之进度条CProgressCtrl
    跨进程使用句柄和文件操作
    redis安装配置
    git全部操作
    idea中Entity实体中报错:cannot resolve column/table/
    Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon
    sql操作
  • 原文地址:https://www.cnblogs.com/liuwenbohhh/p/4371036.html
Copyright © 2011-2022 走看看