draggable="true"
ドラッグ アンド ドロップを有効にするには、要素に属性として追加するだけです。
例:
<div draggable="true">Little brother</div>
dataTransfer
すべてのドラッグ イベントには、ドラッグ データを保持するために使用される というプロパティがあります。dataTransfer
データ形式(MIME)と格納データの2つの情報が含まれています。情報は を使用して設定されevent.dataTransfer.setData()
ます。
event.dataTransfer.setData("text/plain", "Text to drag");
ドラッグ アンド ドロップの動作を変更する例を次に示します。
設定:
- Google Chrome を使用してGoogle.comにアクセスします。
- 「犬」など、何でも検索してください。
- を押しF12て開発コンソールを開きます。
- jQueryの内容をコピーしてコンソールに貼り付けます。
Drag-N-Drop Script
コンソールの内容をコピーして貼り付けます。
使用法:
- 検索結果セクションを Web ブラウザーからワードパッドなどのテキスト エディターにドラッグ アンド ドロップします。
結果:
- リンクのコレクションがテキスト エディターに表示されます。リンクはマークダウン スタイルです。
ドラッグ アンド ドロップ スクリプト
(function () {
// @author Larry Battle (http://bateru.com/news) 12.07.2012
var URLS = {
JQUERY : "http://code.jquery.com/jquery-1.8.3.min.js"
};
var SELECTORS = {
GOOGLE_LINK_SECTIONS : ".g"
};
var getNameAndURLFromLinks = function (el) {
var info = ["Links:\n"];
$(el).find("a").each(function () {
var url = $(this).attr("href");
if (/https?:\/\//.test(url)) {
info.push( "- [" + $(this).text() + "](" + url + ")");
}
});
return info.join("\n");
};
var storeDataInEvent = function (evt) {
var info = getNameAndURLFromLinks($(this));
event.dataTransfer.setData('text/plain', info);
};
var main = function () {
$(SELECTORS.GOOGLE_LINK_SECTIONS)
.attr("draggable", true)
.css("border", "3px orange solid")
.bind("dragstart", storeDataInEvent);
};
if(!window.jQuery){
window.alert("Paste the source of jQuery in the console and then run this script again. URL:" + URLS.JQUERY);
}else if(!/search/.test(document.location.href)){
window.alert("Google for something, then run this script in the console again.");
}
main();
}());
一定数の Web サイトに対してこの機能を備えた Google Chrome 拡張機能を作成できるはずです。各サイトには異なるmain()
機能が必要です。ただし、上位 100 のサイトに対してテストを行うと、一般的なアルゴリズムを作成できる場合があります。