dataTransferメソッドをサポートしていない10未満のバージョンのIEの場合、これを機能させるための別のややハッキーな方法を発見しました。
基本的に、cssでテキストを非表示にしてから、jsを使用してホバー時にバックグラウンドでテキストを選択します。
HTML
<div id="drag_area" draggable="true">
<div id="text">
hidden text
</div>
</div>
CSS
#text { filter:alpha(opacity=0); opacity:0;
overflow:hidden; z-index:100000; width:180px; height:50px }
JS
function selectText(elementID) {
var text = document.getElementById(elementID);
if ($.browser.msie) {
var range = document.body.createTextRange();
range.moveToElementText(text);
range.select();
} else if ($.browser.mozilla || $.browser.opera) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(text);
selection.removeAllRanges();
selection.addRange(range);
} else {
var selection = window.getSelection();
selection.setBaseAndExtent(text, 0, text, 1);
}
}
$('#drag_area').hover(function(){
selectText('text');
});
ここでは、Ansonのソリューションと少しの機能検出を組み合わせています:http:
//jsfiddle.net/zaqx/PB6XL/
(IE8、IE9、およびすべての最新のブラウザーで動作します)
編集:以下のコメントでフィドルを更新しました。