如何在HTML中添加JavaScript而不进行净化?
我尝试在画布渲染的iframe中添加脚本,在<script>iframe正体末尾加了“'标签。这在某种程度上是可行的。问题是,当我需要更新脚本中的 js 时,我需要刷新 iframe(如果有事件监听器就移除),这样做会出现以下错误: 
阅读下方完整回答 ↓问题
@artf,我正在接收用户的JavaScript输入。我需要在模板HTML里添加这个JavaScript,但它会被净化。 有没有办法关闭消毒功能?(我对你提到的#3245问题没有意见)或者你能在编辑器里添加类似“allowSanitization: false”这样的属性吗? 如果不行,那我该如何把JavaScript添加到画布上?
回答(4)
我尝试在画布渲染的iframe中添加脚本,在<script>iframe正体末尾加了“'标签。这在某种程度上是可行的。问题是,当我需要更新脚本中的 js 时,我需要刷新 iframe(如果有事件监听器就移除),这样做会出现以下错误: 
你能提供一个可复现的演示吗?
谢谢你的回复@artf。 我更新iframe时出错了,现在问题解决了! 再问一下,有没有内置的方法可以刷新iframe?
谢谢你举报,@theSC0RP。 关于如何在HTML中添加JavaScript而不进行净化?的好建议!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进行细致跟踪 构建一个插件,扩展编辑器并具备此功能 正式宣布: 如果此功能能惠及更多用户,考虑在 Gra...
相关问答
通过相似的问题讨论继续研究。
问题 #3714
部分解析
讨论于 https://github.com/artf/grapesjs/discussions/3711 <div type='discussions-op-text'> <sup>最初由 ltenti 于 2021 年 8 月 17 日发布</sup> 大家好, 我想知道如...
问题 #3405
专长:在块状物落入画布前,需要挂钩的事件
警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md先快速搜索一下,看看有没有人没开同样的问题所有相关陈述/问题都必须填写/回答,否则问题可...
问题 #3668
移动/缩放后无法重置画布
警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md先快速搜索一下,看看有没有人没开同样的问题所有相关陈述/问题都必须填写/回答,否则问题可...
问题 #3458
专长:添加自定义块(比如 iframe),并像图片一样自定义,比如双击打开素材选项,在自定义 iframe 块中打开视频链接选项
警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md先快速搜索一下,看看有没有人没开同样的问题所有相关陈述/问题都必须填写/回答,否则问题可...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
相关教程
关于同一主题的深入指南。
教程
GrapesJS DevTools: A Developer Panel Inside Your Editor
If you've ever debugged GrapesJS with console.log(editor.getSelected()) and a dozen throwaway event listeners — this post is for you.
教程
How to Build a Production GrapesJS Editor: The Complete Walkthrough of Brief, Preset, Plugins, and Services
A complete walkthrough of building a production GrapesJS editor: how to choose a preset, pick plugins, and scope setup services without burning a sprint.
教程
Big Updates: TinyMCE 8 and Placeholder 2.0 for GrapesJS
In May we shipped major updates to two of our most popular GrapesJS plugins — TinyMCE Inline Text Editor and Placeholder.
浏览插件分类
直接跳转到市场上的插件分类页面。