SYNCERのロゴ
アイキャッチ画像

DataTransfer.getData() - データを取得する

getData()は、DataTransferのメソッドです。転送中のデータの内容を取得します。取得するには対象のデータの種類を指定します。この種類は、typesで確認できます。

概要

名前
getData
所属
DataTransfer
IDL
DOMString getData(DOMString format);
仕様書
https://html.spec.whatwg.org/multipage/dnd.html#dom-datatransfer-getdata

説明

引数(format)には、データの種類を表す文字列を指定する。

種類はtypesで確認できる。"text"は"text/plain"に、"url"は"text/uri-list"と変換して解釈される。

デモ

DataTransfer.getData()のデモです。ドロップした時、データの内容を取得して表示します。

<!-- このコードは編集できます。 -->

<!DOCTYPE html>
<html>
<head>
<style>
div#hoge, div#fuga {
	width: 250px ;
	text-align: center ;
	padding: 24px 12px ;
	background-color: blue ;
	color: #fff ;
}

div#fuga { background-color: red ; }
textarea { width: 250px ; height: 60px ; font-size: 16px ; }
div#result { white-space: pre-wrap ; }
</style>
</head>
<body>
<p><textarea>SYNCER</textarea></p>
<p><img src="./image.png" draggable="true" width="120" height="120"></p>
<hr>
<div id="hoge">drop here!</div>
<hr>
<div id="result"></div>
<script>
var element = document.getElementById( "hoge" ) ;

var callbackFn1 =  function ( event ) {
	event.preventDefault() ;
} ;

var callbackFn2 =  function ( event ) {
	event.preventDefault() ;

	var dataTransfer = event.dataTransfer ;
	var types = dataTransfer.types ;
	console.log( types ) ;

	resultElement.innerHTML = "" ;

	for ( var i=0,l=types.length; l>i; i++ ) {
		var value = dataTransfer.getData( types[i] ) ;
		console.log( types[i], value ) ;
		resultElement.appendChild( document.createTextNode( "type: " + types[i] + "\n" ) ) ;
		resultElement.appendChild( document.createTextNode( "return value: " + value + "\n\n" ) ) ;
	}
} ;

element.ondragover = callbackFn1 ;
element.ondrop = callbackFn2 ;

var resultElement = document.getElementById( "result" ) ;
</script>

</body>
</html>

サポート状況

ChromeFirefoxSafariEdgeIEOperaiOS SafariAndroid
8+ 12+ 4.4+
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年10月11日 (水)
コンテンツを公開しました。