由于多次导入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);
}
答案 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。