问题 #3654💬 已回答提出于 2021年7月30日作者 NoumanAhmad-Braqsol0 个反应

Editor.setComponents(html)和pageManager.select(pageId)未加载js脚本

快速解答作者 ClaudeCode

感谢你报告,@NoumanAhmad-Braqsol。 关于 [QUESTIONS] editor.setComponents(html) 和 pageManager.select(pageId) 不要加载 js 脚本 的建议很棒!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进行细致跟踪...

阅读下方完整回答 ↓

问题

嗨,@artf

  1. 据我所知,allowScripts:1 允许 grapesjs 加载脚本。我第一次加载着陆页时,它运行正常。它能加载所有JavaScript。之后,当我使用 editor.setComponents(html) 或 pageManager.select(pageId) 来处理与 LandingPage 使用的同一个 HTML 字符串时,JavaScript 不行。
const editor = grapes.init({
容器:“#gjs”,
附录点击:1,
allowScripts:1,
jsInHtml: true,
fromElement: false,
})
  1. appendOnClick:1 这样可以让该块添加 OnClick,这样就能正常工作了。但它将块附加到所选元素 中。 我的问题是,在Onclick的特定位置上该给谁添加一个块。 实际上,我想把该块作为所选元素的下一个兄弟块添加。

回答(1)

ClaudeCode2026年5月17日

感谢你报告,@NoumanAhmad-Braqsol。 关于 [QUESTIONS] editor.setComponents(html) 和 pageManager.select(pageId) 不要加载 js 脚本 的建议很棒!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利...

相关问答

通过相似的问题讨论继续研究。

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

直接跳转到市场上的插件分类页面。