将图像拖放到 Chrome 中的 contenteditable 中到光标处

2024-04-06

在 Firefox 中,如果我将图像从桌面拖到可内容编辑的字段中,它将作为 base64 嵌入到突出显示的光标位置。

JSFiddle:http://jsfiddle.net/zupa/YrwsS/ http://jsfiddle.net/zupa/YrwsS/

现在在 Chrome 中,图像由浏览器打开(页面加载,尝试使用相同的小提琴)。

感谢 HTML5,您可以捕获放置事件,并用它捕获图像。但是,如果我停止浏览器的默认行为,我就会陷入困境,不知道用户想要将其放在哪里。

你能建议一个解决方法吗?


如果您可以获得放置位置的坐标(我认为这一定是可能的),您可以按如下方式执行(未经测试)。我假设您已经将相对于视口的放置位置的坐标作为变量x and y和下降的图像作为变量img:

Demo: http://jsfiddle.net/KZqNj/ http://jsfiddle.net/KZqNj/

Code:

var range;

// Try the standards-based way first
if (document.caretPositionFromPoint) {
    var pos = document.caretPositionFromPoint(x, y);
    range = document.createRange();
    range.setStart(pos.offsetNode, pos.offset);
    range.collapse();
    range.insertNode(img);
}
// Next, the WebKit way
else if (document.caretRangeFromPoint) {
    range = document.caretRangeFromPoint(x, y);
    range.insertNode(img);
}
// Finally, the IE way
else if (document.body.createTextRange) {
    range = document.body.createTextRange();
    range.moveToPoint(x, y);
    var spanId = "temp_" + ("" + Math.random()).slice(2);
    range.pasteHTML('<span id="' + spanId + '">&nbsp;</span>');
    var span = document.getElementById(spanId);
    span.parentNode.replaceChild(img, span);
}

这将在最近的 WebKit、Opera 和 Mozilla 浏览器中工作,尽管只有 Firefox 实现了document.caretPositionFromPoint().

参考:

  • http://dev.w3.org/csswg/cssom-view/#dom-document-caretpositionfrompoint http://dev.w3.org/csswg/cssom-view/#dom-document-caretpositionfrompoint
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将图像拖放到 Chrome 中的 contenteditable 中到光标处 的相关文章

随机推荐

  • SearchView 过滤和设置建议

    我对使用很陌生SearchView 我需要一个功能 我有一个ActionBar为此我有Search 当我点击 搜索 时 建议应该显示在List在搜索字段下方 到目前为止我所做的 在menu xml中添加搜索并将代码写入onCreateOpt
  • 尽管满足全局要求,但使用 pip 在本地安装软件包

    我正在尝试使用 pip 在本地安装包 local 问题是该软件包 在旧版本中 已经在系统上全局可用 即使全局 python 包目录是not in my PYTHONPATH pip仍然拒绝安装 认为满足了包要求 这与此处描述的问题类似 但我
  • 下载文件时更新通知时如何防止 UI 滞后?

    我目前正在使用AsyncTask要在我的应用程序后台下载大文件 当前下载进度显示为ProgressDialog这是通过更新onProgressUpdate如下 protected String doInBackground String s
  • CSS背景位置从右到左动画

    我正在尝试为背景图像设置动画 以便图像从右到左显示 我使用的图像的宽度大于背景所在的 div 容器 启动时 背景如下 background url img zeppelin png background repeat no repeat b
  • 如何使用 SoftLayer API 查找 EVault 的位置?

    我看到有 SoftLayer Account getEvaultNetworkStorage 来获取我的 EVault 存储列表 但是 使用我所掌握的信息 我无法确定特定 EVault 的位置 以下是我从 getEvaultNetworkS
  • Android 等待另一个活动结果 - 它不起作用

    如何在 android 中等待另一个活动结果 我编写了以下代码 但活动完成后 它总是转到 onCreate 方法 我有选项卡活动 从一个选项卡活动中 我调用了另一个活动 即弹出窗口 完成弹出窗口后它应该返回到上一个活动 Override p
  • 在 Java 中获取输入最有效的方式是什么?

    我正在解决这个问题question http www codechef com problems INTEST 这是我的代码 import java io IOException import java util Scanner publi
  • NodeJS 字符串格式像 Python 一样吗?

    在 python 中 我可以执行以下操作 name bob print Hey s name 有没有类似的东西 或者Python的 format 在 JavaScript NodeJS 中 您可以使用实用程序格式 https nodejs
  • 仅当系统唤醒时触发计时器 (macOS)

    我正在开发一个进行网络调用的 mac 应用程序 我正在使用一个Timer每 15 分钟进行一次网络调用以刷新一些数据 我只希望在用户使用系统时触发计时器并进行调用 否则它只是进行不必要的调用 即系统未睡眠时 我该怎么做 我读到关于 mach
  • Android 自定义启动器 startActivity() 阻止 BOOT_COMPLETED 意图

    我目前正在开发一个自定义 ROM 基于 CyanogenMod 11 0 旨在实现自定义 Kiosk 模式 为此 我在一个应用程序中包含三个组件 具有系统权限 服务 用于处理对状态 导航栏的修改并禁用电源键 接收方 仅在BOOT COMPL
  • Firemonkey相机组件太慢

    我有一个问题TCameraComponent在安卓上 我第一次运行该应用程序时 相机正常 但如果我停止TCameraComponent再次启动 相机变得太慢 对正在发生的事情有什么想法吗 CameraComponent1 Active fa
  • c中指针的数据类型是什么?

    指针是整数还是无符号数据类型 不 它们是指针 其大小取决于系统 并且唯一兼容的类型是void
  • Material UI 中的交互式目录

    我希望我能够从我的应用程序中的 Material ui 网站重新创建这个小菜单 现在我有一个带有列表和链接的组件 import Link List ListItem from material ui core const burgerRec
  • Google Cast iOS SDK v3.3 存档上传问题

    我使用最新版本的Xcode 8 2 1 b8C1002 和最新版本GoogleCast framework 3 3 0 显然我跟随了这些步骤 https developers google com cast docs ios sender
  • 我的所有组件什么时候加载?

    我有一个组件 它有几个孩子 他们也可能有一些孩子 我无法预测是否所有孩子都会被加载 因为这取决于您查看的内容 我想要实现的是加载内容时显示的加载指示器 但我不想为每个组件显示加载指示器 因为我最终会有 10 15 个加载指示器 我的想法是
  • Backbone:同一模型的多个视图模型

    新手骨干问题 背景 建立一个有骨干的购物清单 我有一个名为名称 描述和标签 数组 属性的模型类 我想基于此模型或此模型的集合创建两个视图 第一个视图将显示所有项目 如下所示 ul li h3 Item 1 Name h3 p Item 1
  • PHP 在 URL 中使用 cURL 和 GET 请求

    我使用 cURL 而不是 file get contents 它在 URL 上运行良好 直到我使用 GET 请求变量代替下面 URL 上的城市 在以下方面使用 cURL 有效 url http www weather forecast co
  • 如何复制 ag-grid 中存在的值

    我正在使用 ag grid 绑定列表中的值 是否可以复制所选单元格中的值 数据 我尝试使用 ctrl c 复制该值 但它不起作用还有其他方法吗 请帮我 有一个标志允许您选择文本 然后按 CTRL C 即可 enableCellTextSel
  • 无法从 python 中的本地模块导入类

    我在本地目录中有一个模块 parser py class Parser object class Parser2 object 我想将它们导入 mainScript py 中 但是我得到了 错误模块解析器中没有名称 解析器 from par
  • 将图像拖放到 Chrome 中的 contenteditable 中到光标处

    在 Firefox 中 如果我将图像从桌面拖到可内容编辑的字段中 它将作为 base64 嵌入到突出显示的光标位置 JSFiddle http jsfiddle net zupa YrwsS http jsfiddle net zupa Y