微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在尝试使用Yii 2.0注册dojo javascript文件.
根据dojo文档,必须考虑在实际dojo.js之前加载dojo config代码块.但是,在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()调用之前加载它.

这样,您可以确保在加载之前已解析标头中的配置.最坏的情况是,您可以在打开body标签后立即使用POS_BEGIN加载它,但是由于加载javascript会阻止,我会尽量避免这种情况.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐