您的位置:首页 > Web前端 > JavaScript

Yii2 如何更好的在页面注入JavaScript

2016-11-10 10:55 441 查看
先添加一个widgets

<?php
/**
* User: yiqing
* Date: 14-9-15
* Time: 下午12:09
*/

namespace common\widgets;

use yii\web\View ;
use yii\widgets\Block ;

class JsBlock extends Block{

/**
* @var null
*/
public $key = null;
/**
* @var int
*/
public $pos = View::POS_END ;
/**
* Ends recording a block.
* This method stops output buffering and saves the rendering result as a named block in the view.
*/
public function run()
{
$block = ob_get_clean();
if ($this->renderInPlace) {
throw new \Exception("not implemented yet ! ");
// echo $block;
}
$block = trim($block) ;
/*
$jsBlockPattern  = '|^<script[^>]*>(.+?)</script>$|is';
if(preg_match($jsBlockPattern,$block)){
$block =  preg_replace ( $jsBlockPattern , '${1}'  , $block );
}
*/
$jsBlockPattern  = '|^<script[^>]*>(?P<block_content>.+?)</script>$|is';
if(preg_match($jsBlockPattern,$block,$matches)){
$block =  $matches['block_content'];
}

$this->view->registerJs($block, $this->pos,$this->key) ;
}
}


使用方法如下

<?php common\widgets\JsBlock::begin() ?>
<script >
$(function(){
jQuery(".company_introduce").slide({mainCell:".bd ul",effect:"left",autoPlay:true,mouseOverStop:true});
});
</script>
<?php \year\widgets\JsBlock::end()?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: