作者:zccst

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

  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核心部件

  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文件

  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文件

  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. $cs = Yii::app()->clientScript;
  6. $cs->registerScript('asset/install', $js, CClientScript::POS_END);
  7. $cs->registerCssFile(Yii::app()->baseUrl . '/css/launch_feed.css');
  8. $cs->registerScript('assets/install_params',$js,CClientScript::POS_END);
  9. $cs->registerScriptFile(Yii::app()->baseUrl . '/resources/jquery.form.js');
  10. $cs->registerCssFile(Yii::app()->baseUrl . '/css/install_params.css');
  11. $this->render('xxx');
  12. }
  13. public function getInstallViewPath() {
  14. return $this->getModule()->getBasePath().'/../operations/views';
  15. }

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

  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方式引入

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

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

3,区别

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

yii引入js文件的更多相关文章

  1. Yii 引入 js和css

    //向控制器指定的页面注册新的css文件 Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/css/my ...

  2. vue脚手架使用swiper /引入js文件/引入css文件

    1.安装vue-cli 参考地址:https://github.com/vuejs/vue-cli 如果不使用严格语法需要在后三项打no:(加了挺头疼的,老是报错,但是对自己的代码规范性也是有很大的帮 ...

  3. 1.在html中引入js文件和Jquery框架

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. jsp引入js文件

    转自:http://blog.csdn.net/ppzhangj/article/details/7859628 1)引入的js文件出错, 检查方法:将Js的内容写在当前的页面的<script& ...

  5. Vue在单独引入js文件中使用ElementUI的组件

    Vue在单独引入js文件中使用ElementUI的组件 问题场景: 我想在vue中的js文件中使用elementUI中的组件,因为我在main.js中引入了element包和它的css,并挂载到了全局 ...

  6. vue引入swiper vue使用swiper vue脚手架使用swiper /引入js文件/引入css文件

    vue引入swiper  vue使用swiper  vue脚手架使用swiper /引入js文件/引入css文件 ------------------------------------------- ...

  7. vue引入js文件时报This dependency was not found:错误

    vue引入js文件时报This dependency was not found:错误 使用了很多方法,原来是这么小的问题,特此记录 解决办法 添加 ./

  8. 使用其他服务器引入JS文件

    使用其他服务器引入JS文件,1,减轻服务器压力2,速度快3,可以缓存 cdnjs库,更新比较快https://cdnjs.com/ cdn库 引入JS文件如:jquerybootcdn : https ...

  9. 防止多次引入js文件导致的重复注册点击事件

    前端代码中的js文件如果是动态引入的或者是某个事件操作进行注册的,那么重复的引入js文件或者多次触发注册事件会导致事件多次进行注册,造成不必要的麻烦,所以需要在每次注册之前将先前的事件进行取消,下面以 ...

随机推荐

  1. Ajax无刷新显示

    前台页面 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1. ...

  2. centos 设置 ip地址

    linux设置ip,主要是修改/etc/sysconfig/network-scripts/ifcfg-** 里面的网卡配置文件,然后命令 service network restart 生效 自动获 ...

  3. ajax post 请求报错Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' heade

    jquery ajax跨域请求,webapi webconfig配置 前台代码(放了一部分) function CheckIn(roomno) { $.ajax({ url: 'https://www ...

  4. pop的运用

    pop():弹出列表最后一个元素 练习题: num_list = [12, 45, 34,13, 100, 24, 56, 74, 109] one_list = [] two_list = [] t ...

  5. 【Linq】标准查询操作符

    A.1 聚合 聚合操作符(见表A-1),所有的结果只有一个值而不是一个序列. Average 和 Sum 针对数值 (任何内置数值类型)序列或使用委托从元素值转换为内置数值类型的元素序列. Min 和 ...

  6. uva 1587(Box UVA - 1587)

    题目大意是给定6个数对,每个数对代表一个面的长和宽,判断这6个面是否能构成一个长方体. 这种题一看很复杂,但是只要不想多了实际上这就是一个水题... 首先说明一下判断的思路: 1.长方体是有三个对面的 ...

  7. web前端学习总结--CSS

    CSS 什么是CSS? CSS 指层叠样式表(Cascading Style Sheets) 样式定义如何显示HTML元素 样式通常存储在样式表中 如何使用CSS 内联方式 样式定义在单个的HTML元 ...

  8. Python面向对象----继承, 重载

    1. 面向对象三大特性之继承. 继承的便捷是子类可以直接调用父类里面的方法和属性.(在强类型语言里面是只能调用公有成员), 不用重复的造轮子. 减少程序猿的负担.实现多态等上层结构 2. 父类代码 3 ...

  9. 洛谷 2387 NOI2014魔法森林 LCT

    [题解] 我们先把边按照$a$值从小到大排序,并按照这个顺序加边. 如果当前要加入的边连接的两点$u$与$v$已经是连通的,那么直接加入这条边就会出现环.这时我们需要删除这个环中$b$值最大的边.因此 ...

  10. 洛谷 2234 BZOJ 1588 HNOI2002 营业额统计

    [题解] treap模板题,直接用Treap维护前驱.后继,每次找到更接近当前val的加上就好了. #include<cstdio> #include<algorithm> # ...