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

script模块标签导入createPopup函数报错未定义,求正确导入方法?

解决方法

你的问题核心是模块脚本的作用域隔离:带有type="module"的脚本会创建独立作用域,内部导入的变量不会自动暴露到全局,而你单独的JS部分是普通脚本,无法访问模块作用域里的createPopup。

以下是两种可行的修正方式:

方式1:将所有逻辑整合到模块脚本中

直接把JS逻辑写到type="module"的script标签内,这样就能直接使用导入的函数:

<button id="button">打开表情选择器</button>
<script type="module">
import { createPopup } from 'https://unpkg.com/@picmo/popup-picker@latest/dist/index.js?module';

const triggerButton = document.getElementById('button');
const picker = createPopup();

// 绑定触发事件,点击按钮显示选择器
triggerButton.addEventListener('click', () => {
  picker.show(triggerButton);
});
</script>

方式2:将独立JS部分设为模块类型(适用于Fiddle环境)

在Fiddle的JavaScript设置里,把脚本类型改为Module,然后直接在JS部分导入并使用:

import { createPopup } from 'https://unpkg.com/@picmo/popup-picker@latest/dist/index.js?module';

const triggerButton = document.getElementById('button');
const picker = createPopup();

triggerButton.addEventListener('click', () => {
  picker.show(triggerButton);
});

此时HTML部分只需保留触发按钮即可,无需额外的导入script标签。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:06:40