0

我正在尝试使用 registerScript() 将一些原始 javascript 输出到我的页面中。以下似乎工作正常(在视图级别,由控制器调用):

模块/myApp/views/readEditor.php:

<?php
$cs = Yii::app()->getClientScript();  
$cs->registerScript(
                'my-hello-world-1',
                'var someCoolVariableInView = 11;',
                CClientScript::POS_END
);
?>

这应该在之前出现:

/*<![CDATA[*/
var someCoolVariableInView = 11;
/*]]>*/

但是,当我在小部件的视图中执行等效操作时:

模块/myApp/components/views/myWidget.php:

<?php
$cs = Yii::app()->getClientScript();  
$cs->registerScript(
                'my-hello-world-2',
                'var someCoolVariableInWidget = 10;',
                CClientScript::POS_END
);
?>

javascript 不显示。

我做了一堆谷歌搜索,但没有发现任何有用的东西。我的猜测是小部件正在过滤掉 javascript...希望有一个参数或配置开关我可以更改以使其输出(或者也许有更好的方法来做到这一点)。

谢谢,

彼得

更新:

小部件如何呈现:

<?php
class myWidget extends CWidget {

    public function init() {
    } // end init()

    public function run() {
        // ...
        $this->render('myWidget');
    } // end run()

}
4

2 回答 2

0

将您的 registerScript 放入init()

于 2013-03-05T10:22:43.473 回答
0

在您的控制器中尝试以下代码来处理呈现 javascript 代码。

$output=$this->widget('myWidget',array(),true); 
echo $this->processOutput($output);
于 2015-06-23T12:58:26.373 回答