首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在IE中读取剪贴板图像

在IE中读取剪贴板图像
EN

Stack Overflow用户
提问于 2015-05-12 18:13:35
回答 2查看 1.1K关注 0票数 5

我可以使用以下代码在Chrome中成功读取剪贴板图像:

代码语言:javascript
运行
复制
data = event.originalEvent.clipboardData;

for (var i = 0; i<data.items.length; i++){
        var item = data.items[i];
        if (item.type === 'image/png'){
             itemFound = true;
             break;
        }
}

然而,这种方法在IE中不起作用。微软发布了一篇关于在IE中粘贴的博客(http://blogs.msdn.com/b/ie/archive/2013/10/24/enhanced-rich-editing-experiences-in-ie11.aspx)。该博客指出,我应该能够使用以下代码行

代码语言:javascript
运行
复制
var fileList = clipboardData.files;

然而,fileList总是以空的形式返回。

谁知道在IE中访问剪贴板图像的方法?我可以很好地阅读文本,但不是图像。

EN

回答 2

Stack Overflow用户

发布于 2020-02-10 08:19:33

假设您正在使用ClipboardEvent(),您是否尝试过以下操作?

代码语言:javascript
运行
复制
var data = event.clipboardData || event.originalEvent.clipboardData;

或者可以像更改代码以引用window对象一样简单?

代码语言:javascript
运行
复制
var fileList = window.clipboardData.files
票数 1
EN

Stack Overflow用户

发布于 2020-02-14 05:13:42

您只需监听paste事件,并使用间隔捕捉图像已创建但仍未呈现的时间点。然后,您只需获取图像源并清空编辑器即可。

下面的代码实现了这个算法。当你在IE或Firefox中运行它时,结果将与前一个示例在Chrome和Opera中的结果相同:

代码语言:javascript
运行
复制
<script type="text/javascript">
$(document).ready(function() {

  $('#editor').on('paste', function (e) {
    $('#editor').empty();
        var waitToPastInterval = setInterval(function () {
            if ($('#editor').children().length > 0) {
                clearInterval(waitToPastInterval);
        $('#result').html($('#editor').find('img')[0].src);
        $('#editor').empty();
            }
        }, 1);  
  });

});
</script>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='editor' contenteditable=true></div>
<div id='resultcnt'>Copyed image src:<br />
  <div id='result'></div>
</div>

<style  type="text/css">
#editor{
  width: 500px;
  min-height: 40px;
  border: solid 1px gray;
  padding: 4px;
}
#resultcnt{
  width: 100%;
  margin-top: 16px;
}
#result{
  display: block;
  max-width: 90%;
  margin: 16px 0 32px 0;
  font-size: 12px;
  color: blue;
  overflow: visible;
  word-break: break-all;
}
</style>

看看这个帖子:How do i get base64 encoded image from clipboard in internet explorer?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30187817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档