[英]JavaScript file dependend on JavaScript code block in Yii2 (for dojo configuration)
我正在尝试使用Yii 2.0注册dojo javascript文件。 根据dojo文档,必须在实际的dojo.js之前加载dojo配置的代码块才能被考虑。 但是,在HTML输出中,我的自定义javascript代码总是在dojo.js之后加载。
这是我的代码:
$this->registerJs('dojoConfig="async:true,isDebug:true";', $this::POS_HEAD,'dojoconfiguration');
$this->registerJsFile('/dojo_toolkit/dojo/dojo.js', ['depends' => [\yii\web\JqueryAsset::className()], 'position' => yii\web\View::POS_HEAD]);
在HTML中它看起来像这样:
<script src="/dojo_toolkit/dojo/dojo.js"></script>
<script type="text/javascript">dojoConfig="async:true,isDebug:true";</script>
有什么建议吗?
对于相同的位置,Yii2始终首先放置内联脚本,然后放置实际的外部文件。 所以你不能通过将它们添加到<head>
来解决这个问题。
最好给registerJsFile()
调用一个POS_END
来在最后加载它。 它仍将在进行document.ready()
调用之前加载。
这样,您可以确保在加载之前解析标头中的配置。 最坏的情况你可以使用POS_BEGIN
在打开body标签后立即加载它,但是因为加载javascript是阻塞的,我会尽量避免这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.