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

标签 javascript php dojo yii2

我正在尝试使用 Yii 2.0 注册 dojo javascript 文件。 根据 dojo 文档,dojo 配置的代码块必须在实际的 dojo.js 之前加载才能被考虑。但是,在 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() 之前加载打电话。

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

关于JavaScript 文件依赖于 Yii2 中的 JavaScript 代码块(用于 dojo 配置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31964857/

相关文章:

javascript - 从不同域访问 bugzilla Web 服务的好方法是什么?

javascript - 如何使用 jQuery 将 4 的 1 个元素 append 到另一个 div

javascript - 访问数组中的数据

php - 在 WooCommerce 管理订单页面上将产品自定义字段显示为订单项元

javascript - 读取没有输入按钮的文件javascript

javascript - 如何使用 Javascript 交织文本框中的输入

php - 如何计算 wp-db7 表单中特定表单帖子 id 的行数

php - 将标题位置作为 Sql Die 操作

javascript - 小部件上的 dojo 查询

javascript - 放置完成时的拖放事件