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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| <!DOCTYPE HTML>
<html>
<head>
<title>patrick WYSIWYG html </title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=10">
<style>
#DO{margin-top:3px;height:15px;margin-right:-30px;width:15px;border-radius: 8px;
border:1px solid black;background-color:red;cursor:pointer;}
</style>
<script type= "text/javascript">
var ED=document.getElementById("editeur");
var DX,DY;
var dragged=null;
/////////////////////////////////////fonction stop drag////////////////////////////////////////////////////////////
function drag_onmouseup(event) { dragged = null;editeur.contentEditable=true;} //On arrête le drag&drop
//////////////////////////////////////////////fontion de position ///////////////////////////////////////////////////
function WhereMouse( ){
if(dragged !=null){
Mouse_X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
Mouse_Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
Mouse_X-= DX;Mouse_Y-= DY; //On applique le décalage
dragged.style.position = 'absolute';
dragged.style.left = Mouse_X + 'px';
dragged.style.top = Mouse_Y + 'px';
}
}
////////////////////////////////////////////////////////ajout des evenements mousemove et mouse up de l'object document///////////////////////
typeof window.addEventListener == 'undefined' ? document.attachEvent("onmousemove",WhereMouse) : document.addEventListener('mousemove',WhereMouse,false);
typeof window.addEventListener == 'undefined' ? document.attachEvent("onmouseup",drag_onmouseup) : document.addEventListener('mouseup',drag_onmouseup,false);
/////////////////////////////////////////////////////////////////////////////////
function selectionne_text(){return window.getSelection().getRangeAt(0);}
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////
function insertdiv(){
var divID="div"+ editeur.getElementsByTagName("div").length;
var selection = selectionne_text();var selectedText = selection.extractContents();
var balise = document.createElement('div');balise.id=divID;balise.className="divint";balise .style.width=200+"px";balise.style.height=200+"px";
balise.style.float="left" ; balise.style.border="0.2pt solid black";balise.style.borderRadius = "25px";
if (selection !=""){balise.appendChild(selectedText ); }else{ balise.innerHTML="<p> </p>";}
/*balise.onclick = function () { activelement=document.selection.createRange().parentElement(); } */
selection.insertNode(balise);
document.getElementById(divID).addEventListener("mouseover", function(){gripp(this)});
var codediv=document.getElementById("editeur").innerHTML;
document.getElementById("editeur").innerHTML=codediv.replace(balise.outerHTML, "<p></p>"+ balise.outerHTML +"<p></p>");
document.getElementById(divID).addEventListener("mousemove", function(){gripp(this)},true);
document.getElementById(divID).addEventListener("mouseout", function(){degripp(this)});
var divID=""
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////
function degripp(element){
var DO=document.getElementById("DO");
if (DO!=null){
X= event.clientX ; Y = event.clientY ;
var obj=document.elementFromPoint(X,Y);
if (obj.id !="DO"){element.removeChild(DO);}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
function gripp(element){
var DO=document.getElementById("DO");
if (DO==null){
var rect = element.getBoundingClientRect (); var L = rect.left; var T = rect.top; var W = rect.width;var H = rect.height;
var doigt=document.createElement("div");
doigt.id="DO";
doigt.style.position="absolute"
doigt.style.left=W-20+"px";
element.insertBefore(doigt, element.childNodes[0]);
document.getElementById("DO").addEventListener("mousedown", function(){start_drag(this)});
}//fin du if DO
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
function start_drag(element){
dragged=element.parentElement;
event.returnValue = false;
if( event.preventDefault ) event.preventDefault();
X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
var rect = dragged.getBoundingClientRect (); var L = rect.left; var T = rect.top; var W = rect.width;var H = rect.height;
DX=X - L ;DY=Y - T;
editeur.contentEditable=false;}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
</script>
</head>
<body>
<button onclick="insertdiv()"> ajouter un div </button>
<div id="editeur"contentEditable="true" style="height: 600px; width: 700px;border:1px solid black;">
<p> du texte dans l'editeur</p>
du texte dans mon div</div>
<!--div id="div2"class="divint" onmouseover="poigneevisible(this)" onmouseout="poigneenonvisible(this)" ></div--!>
</div>
</body>
</html> |
Partager