1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| onPaste = function(ID,e){
(ID == "") ? ID = e.srcElement.id : "";
var elem = document.getElementById(ID);
var copie;
var MonObjet;
var Selection;
var Range;
if(!document.all){
MonObjet = elem.contentWindow;
Selection = MonObjet.getSelection();
Range = Selection.getRangeAt(0);
}
else{
MonObjet = elem;
MonObjet.focus();
Selection = document.selection.createRange().text;
Range = document.selection.createRange();
}
SavedRange = Range;
var savedcontent;
(!$.browser.msie) ? savedcontent = elem.contentWindow.document.body.innerHTML : savedcontent = elem.innerHTML;
if (e && e.clipboardData && e.clipboardData.getData) {// Webkit - get data from clipboard, put into editdiv, cleanup, then cancel event
if (/text\/html/.test(e.clipboardData.types)) {
copie = e.clipboardData.getData('text/html');
}
else if (/text\/plain/.test(e.clipboardData.types)) {
copie = e.clipboardData.getData('text/plain');
}
else {
copie = "";
}
waitforpastedata(elem, savedcontent);
if (e.preventDefault) {
e.stopPropagation();
e.preventDefault();
}
return false;
}
else {// Everything else - empty editdiv and allow browser to paste content into it, then cleanup
(!$.browser.msie) ? elem.contentDocument.body.innerHTML = "" : $("#" + ID).html("");
waitforpastedata(elem, savedcontent);
return true;
}
}
function waitforpastedata (elem, savedcontent){
(!$.browser.msie) ? newelem = elem.contentWindow.document.body : newelem = elem;
var Retour;
if (newelem.childNodes && newelem.childNodes.length > 0){
Retour = (processpaste(elem, savedcontent));
}
else {
that = {
e: elem,
s: savedcontent
}
that.callself = function (){
waitforpastedata(that.e, that.s)
}
setTimeout(that.callself,20);
}
}
function processpaste (elem, savedcontent){
var pasteddata = elem.innerHTML || elem.contentWindow.document.body.innerHTML;
//^^Alternatively loop through dom (elem.childNodes or elem.getElementsByTagName) here
(!$.browser.msie) ? elem.contentDocument.body.innerHTML = savedcontent : elem.innerHTML = savedcontent;
// Do whatever with gathered data;
return pasteddata;
} |
Partager