繁体   English   中英

JavaScript文件依赖于Yii2中的JavaScript代码块(用于dojo配置)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM