PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

问题 #6348💬 已回答提出于 2024年12月7日作者 Frubl1 个反应

在 grapesjs 画布内可以拖拽任何东西

快速解答作者 artf❤ 1

你可以通过“canvas:dragdata”事件控制画布中丢失的内容 https://jsfiddle.net/artur_arseniev/87rcb24n/

阅读下方完整回答 ↓

问题

GrapesJS 版本

  • 我确认使用最新版本 GrapesJS

你用的是什么浏览器?

铬

可复制演示链接

https://grapesjs.com/demo.html

描述一下那个虫子

如何复现这个漏洞?

  1. 尝试选择,比如整个侧边栏工具/文本/所有功能
  2. 抓取并放置在画布上

预期的行为是什么? 可能只复制粘贴文本或净化过的 html,或者可以拖拽只放我做成可删除的元素

目前的行为是什么? 我可以拖拽Canvas里的任何东西。 ![Screenshot_14](https://github.com/user-attachments/assets/11627411-14e5-4fda-a202-c6921cf64047)

行为准则

  • 我同意遵守本项目的行为准则

回答(2)

GJS Helper• 2026年5月17日

你报告的问题是, GrapesJS 画布外的任意元素(包括编辑器界面的部分)可以拖拽到画布中,这是浏览器原生拖放功能导致的常见行为。默认情况下,浏览器允许拖放大多数可选内容或元素。 GrapesJS的画布作为标准HTML元素,继承了这种行为。 根本原因: 当你拖动元素时,浏览器会为 DataTransfer 对象填充各种数据类型(例如, text/plain, text/html)。如果 GrapesJS 没有明确拦截并阻止这些 dragover 和 drop 不需要内容的事件,浏览器的默认操作将接管,试图将拖曳的HTML或文本插入可丢弃区域(画布)。 解决方案:利用 GrapesJS Ca...

相关问答

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

问题 #5607

无法扩展之前空过的图层

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v120.0.6099.199 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?将第1列方块拖到画布上将任...

2 个回答更新于 2024年1月11日

问题 #6669

层管理器中方块的跨层重排会导致分拣器错误并中断后续的移动尝试

GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞? 从一个新的编辑器实例开始,画布是空的 从块面板中,将一个“1列”块拖...

3 个回答更新于 2025年12月6日

问题 #5810

不必要的画布风格

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Arc 版本 1.35.0 / Chromium 引擎 123.0可复制演示链接 https://grapesjs.com/demo.html描述一下那个虫子 我的特殊情况: 就我而言,所有...

4 个回答更新于 2024年4月17日

问题 #5378

未捕获类型错误:在图层管理器面板拖动组件时无法读取未定义属性(读取“Canvas”)。

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v116.0.5845.97 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?从画布中选择任意组件打开图层...

4 个回答更新于 2023年9月16日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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