You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

引入threex.domevents.js遇报错,求非Node.js环境解决方法

解决threex.domevents.js在浏览器/Django环境下的引入错误

错误原因分析

  1. module is not defined:你使用的unpkg上的threex-domevents@1.0.0是CommonJS模块格式,浏览器环境没有Node.js的module对象,直接引入会触发这个错误。
  2. THREEx is not defined:第一个错误导致脚本加载失败,THREEx全局变量未被注册,因此main.js中调用THREEx.DomEvents时找不到该对象。

解决方案

方案1:修改threex.domevents.js代码(推荐)

  1. 打开https://unpkg.com/threex-domevents@1.0.0/threex.domevents.js,复制全部代码。
  2. 在本地创建threex.domevents.js文件,粘贴代码后修改最后一行:
    • 原代码最后一行:module.exports = THREEx.DomEvents;
    • 修改为:
      // 将THREEx注册到浏览器全局对象
      if (typeof window !== 'undefined') {
        window.THREEx = window.THREEx || {};
        window.THREEx.DomEvents = THREEx.DomEvents;
      }
      
  3. 在Django项目中,将修改后的文件放入static/js/目录(无此目录则自行创建)。
  4. 在HTML模板中通过Django静态标签引入:
    {% load static %}
    <script src="{% static 'js/threex.domevents.js' %}"></script>
    
    确保该标签位于three.min.js之后、main.js之前。

方案2:使用UMD格式的兼容版本

替换原CDN链接为浏览器兼容的UMD打包版本(注意匹配你的Three.js版本):

<!-- 替换原unpkg引入链接 -->
<script src="https://cdn.jsdelivr.net/npm/threex-domevents@1.0.0/dist/threex-domevents.umd.js"></script>

验证修改

刷新页面后两个错误应消失,可在main.js中继续使用THREEx.DomEvents绑定交互,示例:

// 给立方体绑定点击事件
domEvents.addEventListener(cube, 'click', function(event) {
  console.log('立方体被点击了!');
});

内容的提问来源于stack exchange,提问作者fr4nsiscus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 22:18:21