由于scriptMap,editMe扩展无法正常工作

时间:2013-03-25 17:17:38

标签: yii ckeditor yii-extensions

由于多次导入jquery.js(由pagespeed插件显示)和其他脚本,我的网站性能很差。所以在我的主要布局中,我添加了

    <?php
    $cs=Yii::app()->clientScript;
    $cs->scriptMap=array(
        'jquery.js'=>false,
        'jquery.ui.js' => false,
    );?>
 ...
 ...
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script>
    ..
    </head>

但是,只要我在主布局中添加了上面的 scriptMap ,editMe富文本框编辑器就无法正常工作。

有谁能告诉我如何解决这个问题? 另外,请建议我如何在我的网站上解决多个脚本导入问题?

我可以在ExtEditMe.php中看到以下代码

public function run() {
        // Register JavaScript files
        Yii::app() -> clientScript -> registerCoreScript('jquery');
        Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl.'/js/jquery.js');
        Yii::app() -> clientScript -> registerScriptFile(self::$_ckeAssetUrl . '/' . md5(self::$_ckeAssetUrl) . '.js');
        Yii::app() -> clientScript -> registerScriptFile(self::$_ckeAssetUrl . '/ckeditor.js');
        Yii::app() -> clientScript -> registerScriptFile(self::$_ckeAssetUrl . '/adapters/jquery.js');
        // Generate textarea
        $nameId = $this -> resolveNameID();
        $this -> htmlOptions['id'] = $nameId[1];
        if ($this -> hasModel()) {
            echo CHtml::activeTextArea($this -> model, $this -> attribute, $this -> htmlOptions);
        } else {
            echo CHtml::textArea($this -> name, $this -> value, $this -> htmlOptions);
        }
        // Load CKEditor
        $jquerySelector = CJavaScript::encode('#' . $this -> htmlOptions['id']);
        $ckeConfig = CJavaScript::encode($this -> _ckeGenerateConfig());
        Yii::app() -> clientScript -> registerScript('editMe_' . $this -> htmlOptions['id'], 'jQuery(' . $jquerySelector . ').ckeditor(' . $ckeConfig . ');', 2);
    }

1 个答案:

答案 0 :(得分:1)

作为解决方法,我修改了我的主要布局,如下所示

<?php
$cs=Yii::app()->clientScript;
$cs->scriptMap=array(
    'jquery-ui.min.js' => false,
    'jquery.min.js'=>false,
);?>
 ...
 ...
    <head>
         <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script>
    ..
    </head>

而,

ExtEditMe.php按原样保留。在我使用jquery.js的所有地方现在都使用jquery-min.js。