DataTransfer.setData() - Web API 接口参考 编辑

DataTransfer.setData() 方法用来设置拖放操作的drag data到指定的数据和类型。

如果给定类型的数据不存在,则将其添加到拖动数据存储的末尾,使得 types 列表中的最后一个项目将是新类型。

如果给定类型的数据已经存在,现有数据将被替换为相同的位置。也就是说,替换相同类型的数据时 types列表的顺序不会更改。

示例数据类型为:"text/plain" 和 "text/uri-list".

语法

void dataTransfer.setData(format, data);

参数

format
一个DOMString 表示要添加到 drag object的拖动数据的类型。
data
一个 DOMString表示要添加到 drag object的数据。

返回值

void

示例

 

此示例显示了使用 DataTransfer 对象的 getData(), setData() }和clearData() 方法。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>DataTransfer.setData()/.getData()/.clearData()</title>
    <style>
        div {
            margin: 0em;
            padding: 2em;
        }
        #source {
            color: blue;
            border: 1px solid black;
        }
        #target {
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <section>
        <h1>
            <code>DataTransfer.setData()</code> <br>
            <code>DataTransfer.getData()</code> <br>
            <code>DataTransfer.clearData()</code>
        </h1>
        <div>
            <p id="source" ondragstart="dragstart_handler(event);" draggable="true">
                Select this element, drag it to the Drop Zone and then release the selection to move the element.
            </p>
        </div>
        <div id="target" ondrop="drop_handler(event);" ondragover="dragover_handler(event);">
            Drop Zone
        </div>
    </section>
    <!-- js -->
    <script>
        function dragstart_handler(ev) {
            console.log("dragStart");
            // Change the source element's background color to signify drag has started
            ev.currentTarget.style.border = "dashed";
            // Set the drag's format and data. Use the event target's id for the data
            ev.dataTransfer.setData("text/plain", ev.target.id);
        }

        function dragover_handler(ev) {
            console.log("dragOver");
            // prevent Default event
            ev.preventDefault();
        }

        function drop_handler(ev) {
            console.log("Drop");
            ev.preventDefault();
            // Get the data, which is the id of the drop target
            var data = ev.dataTransfer.getData("text");
            // appendChild
            ev.target.appendChild(document.getElementById(data));
            // Clear the drag data cache (for all formats/types)
            ev.dataTransfer.clearData();
        }
    </script>
</body>
</html>


规范

SpecificationStatusComment
HTML Living Standard
setData()
Living Standard 
HTML 5.1
setData()
RecommendationInitial definition

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support4(Yes)3.510123.1
FeatureAndroidAndroid WebviewChrome for AndroidEdgeFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari Mobile
Basic support未实现未实现未实现(Yes)未实现未实现10未实现未实现

也可以看看

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:64 次

字数:9365

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文