【发布时间】:2017-04-14 23:46:27
【问题描述】:
我想从 Office365 (Outlook) 中拖放电子邮件 到另一个浏览器窗口。
问题是,在我选择电子邮件并将其拖动到我的放置位置后,它不接受放置位置。 (仅在 IE 中,chrome 有效)
如何创建一个接受电子邮件的投递位置?
我看过了:https://www.html5rocks.com/en/tutorials/dnd/basics/ 但是拖动的对象永远不会以这种方式锁定。
然后我在这个站点查看了拖放功能的不同实现:http://mereskin.github.io/dnd/
在 Chrome 中,以下代码有效: JSFiddle:https://jsfiddle.net/puq3y6u1/
(DropLocation 的 JavaScript)
var dropbox = document.getElementById('dropbox');
dropbox.addEventListener('dragenter', noopHandler, false);
dropbox.addEventListener('dragexit', noopHandler, false);
dropbox.addEventListener('dragover', noopHandler, false);
dropbox.addEventListener('drop', drop, false);
function noopHandler(evt) {
evt.stopPropagation();
evt.preventDefault();
}
function drop(evt) {
evt.stopPropagation();
evt.preventDefault();
var data = evt.dataTransfer.getData("text/plain");
console.log(data);
}
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Drag and Drop the Office365 Mail</title>
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<div id="dropbox">DropZone </div>
<script src="js/script.js"></script>
</body>
</html>
CSS:
#dropbox {
width: 200px;
height: 200px;
background-color: blue;
color: white;
font-size: 30px;
text-align: center;
line-height: 200px;
}
我知道对于 Internet Explorer,getData 类型应仅更改为“文本”。
但是,我不能仅将 setData 更改为“文本”,因为 owa 网站已经实现了这一点。
当我尝试通过 chrome 将邮件移动到投递位置时,它按预期工作。
如果我尝试将邮件从 Internet Explorer 窗口移动到 Internet Explorer 窗口,当我不在文件夹所在的导航栏上时,它会立即被阻止。
我试图调试 Owa 是如何做到的。因为您可以将电子邮件拖放到文件夹(在 IE 中)。但我被困在那里。代码被缩小并且非常大,我可以对其进行分析。
【问题讨论】:
标签: javascript outlook drag-and-drop office365 exchange-server