【发布时间】:2013-03-04 21:51:01
【问题描述】:
我正在尝试使用 registerScript() 将一些原始 javascript 输出到我的页面中。以下似乎工作正常(在视图级别,由控制器调用):
modules/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;
/*]]>*/
但是,当我在小部件的视图中执行等效操作时:
modules/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()
}
【问题讨论】:
-
这个“小部件的视图”看起来非常可疑。它是如何渲染的?
-
@Jon 添加了更多代码,展示了小部件的呈现方式。这是你的意思吗?有什么可疑之处?请注意,我在小部件视图中有 div 和其他内容输出正常,只是脚本没有显示。
-
你是如何加载小部件的?
标签: javascript yii yii-components