10 नीचे IE के संस्करणों जो DataTransfer विधि का समर्थन नहीं करते के लिए
$('[draggable]').on('dragstart', function(e) {
var content = $(this).find('#content').text(); // Can be anything you want!
e.originalEvent.dataTransfer.setData('text/plain', content);
$(this).addClass('dragging');
});
यहाँ, मुझे पता चला है इस काम को करने के लिए एक और कुछ हद तक हैकी तरीका।
असल में आप सीएसएस के साथ अदृश्य पाठ बनाते हैं तो होवर पर पृष्ठभूमि में इसे चुनने के लिए जेएस का उपयोग करें।
एचटीएमएल
<div id="drag_area" draggable="true">
<div id="text">
hidden text
</div>
</div>
सीएसएस
#text { filter:alpha(opacity=0); opacity:0;
overflow:hidden; z-index:100000; width:180px; height:50px }
जे एस
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');
});
यहाँ यह एंसन के समाधान और एक छोटे से सुविधा का पता लगाने के साथ संयुक्त है:
http: // jsfiddle .NET/zaqx/PB6XL/
(आईई 8, आईई 9 और सभी आधुनिक ब्राउज़रों में काम करता है)
संपादित करें: नीचे दी गई टिप्पणियों में अपडेट किया गया पहेली।
क्या आपने इसे href में रखने से पहले स्ट्रिंग को यूआरआई एन्कोड करने का प्रयास किया था? –
यह सुनिश्चित नहीं है कि ड्रैगिंग के साथ इसे कैसे किया जाए, लेकिन जेएस के साथ कामों की प्रतिलिपि बनाना और चिपकाना। यह jsFiddle देखें: http://jsfiddle.net/jRXMf/ शायद इससे मदद मिलेगी? – ReLeaf
@andrew यूआरआई एन्कोडिंग रिक्त स्थान को% 20 के साथ बदल देता है जो बहुत उपयोगी नहीं है। – Zaqx