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这样的文件生成,还在继续探索中。

  • 相关阅读:
    Windows JScript 在 游览器 中运行 调试 Shell 文件系统
    autohotkey 符号链接 软连接 symbolink
    软链接 硬链接 测试
    SolidWorks 修改 基准面 标准坐标系
    手机 路径 WebDAV 映射 驱动器
    Win10上手机路径
    explorer 命令行
    单位公司 网络 封锁 屏蔽 深信 AC
    cobbler自动化部署原理篇
    Docker四种网络模式
  • 原文地址:https://www.cnblogs.com/liuwenbohhh/p/4371036.html
Copyright © 2011-2022 走看看