javascript - 使用 Firefox 防止 SCEditor (MyBB) 中的拖放

标签 javascript firefox drag-and-drop mybb sceditor

我有一个 MyBB 论坛,其中默认包含 SCEditor 作为所见即所得编辑器。

SCEditor 不是为拖放而设计的,因此对于 IE、Safari 和 Chrome,如果您尝试将图像拖到字段中,整个页面都会被图像替换(这对我来说没问题)。

但是在 Firefox 中,图像适合该字段,这表明该消息将与其一起显示,但最终该图片被翻译为 Base64,与 bbcode 不兼容。 图片不显示,而是一大堆代码。

能够进行拖放操作会很好,但我不想将图像存储在 base64 中,所以我只是想阻止 Firefox 将图片拖放到该字段中。 我根本不需要拖放,因此可以完全禁用它。也许用jquery?

抱歉,我无法访问论坛,但您可以在此处查看 SCEditor 的演示:https://www.sceditor.com

最佳答案

如果您不允许在页面上的任何位置拖放(我假设没有其他地方可以放置文件),您可以添加此 JS 来阻止它:

function preventDefault(e) { e.preventDefault() }

// Prevent drag drop on page
document.body.addEventListener('dragover', preventDefault);
document.body.addEventListener('drop', preventDefault);

// Prevent drag drop inside editor
if (window.MyBBEditor && MyBBEditor.getBody) {
    instance.getBody().addEventListener('dragover', preventDefault);
    instance.getBody().addEventListener('drop', preventDefault);
}

您需要确保在创建编辑器后调用它。

关于javascript - 使用 Firefox 防止 SCEditor (MyBB) 中的拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48823347/

相关文章:

javascript 使用现有原型(prototype)重新定义原型(prototype)

javascript - jQuery .load 刷新导致页面缩小

c# - asp.net c# 代码在 Firefox 上无法正常工作,在其他浏览器上工作正常

javascript - 使用事件发生时间的约束来安排应用程序

jquery - 如果 div 已经被放置,则禁用放置?

php - 从 HTTP PUT 读取数据

javascript - 从谷歌地图解析 json 反向地理编码?

Firefox 正在读取 CSS 条件 IE 语句

firefox - 在 Firefox 扩展中使用相对路径

ios - UIPopoverController 拖放