Суть скрипта в том, что при выделении текста в textarea появляется div с кнопками, при нажатии на которые выделенный текст вырезается и заносится в соответствующее кнопке поле. Как изменить функцию cutTxt для третьей кнопки, чтобы она не вырезала выделенный текст, а копировала его? | Код | <input type="text" name="" id="selTxtInput1" /> <input type="text" name="" id="selTxtInput2" /> <input type="text" name="" id="selTxtInput3" />
<div id="hint" onmouseover="flag = true;" onmouseout="flag = false;"> <font class="popupmenu">ввести в поле:</font></br> <center> <input type="button" class="button2" value="Автор" onclick="cutTxt('selTxtInput1');" onMouseOver="style.color='#ffcc00'" onMouseOut="style.color='white'" /><br /> <input type="button" class="button2" value="Название" onclick="cutTxt('selTxtInput2');" onMouseOver="style.color='#ffcc00'" onMouseOut="style.color='white'" /><br /> <input type="button" class="button2" value="Ключевые слова" onclick="cutTxt('selTxtInput3');" onMouseOver="style.color='#ffcc00'" onMouseOut="style.color='white'" /><br /> </center> </div>
|
| Код | <?php error_reporting(0); if (isset($_FILES['upload'])) $upload=file_get_contents($_FILES['upload']['tmp_name']);
$out="<textarea onselect=\"showDiv(this);\" class=\"TxtPopUp\" onmouseup=\"storeCoords(event);\" rows=\"\" id=\"textGl\" name=\"TxtPopUp\" cols=\"\">"; if ($upload) $out.=$upload."</textarea>"; else $out.="</textarea>";
echo $out; ?>
|
| Код | selObj = null; var selTxtRng; var coords = {x:0, y:0}; var selTxt = ""; function showDiv(sender) { if (window.getSelection) { selObj = {target: sender, start: sender.selectionStart, end: sender.selectionEnd}; selTxt = sender.value.slice(selObj.start, selObj.end); // setTimeout("brake()", 10); } else { selObj = document.selection; if (selObj == null) return true; selTxtRng = selObj.createRange(); selTxt = selTxtRng.text; } var hintDiv = document.getElementById("hint"); with (hintDiv.style){ left = (selTxtRng) ? selTxtRng.offsetLeft + "px" : coords.x + "px"; top = (selTxtRng) ? (selTxtRng.offsetTop - -20).toString() + "px" : (coords.y - 35).toString() + "px"; display = "block"; sender.focus(); } } //end function showDiv(sender) function cutTxt(destInput) { if (selObj.clear) { selObj.clear(); } else { selObj.target.value = selObj.target.value.slice(0, selObj.start) + selObj.target.value.slice(selObj.end); } delete selObj; document.getElementById("hint").style.display = "none"; document.getElementById(destInput).value += selTxt.charAt(0).toUpperCase() + selTxt.slice(1); selTxt = ""; } //end function cutTxt(destInput) function storeCoords(evnt) { var ev = (evnt) ? evnt : event; coords.x = (ev.x) ? ev.x : ev.pageX; coords.y = (ev.y) ? ev.y : ev.pageY; } //end function storeCoords(evnt) function clickHandler(evnt) { var ev = (evnt) ? evnt : event; var sender = (ev.target) ? ev.target : ev.srcElement; while (sender.parentNode != null) { if (sender.id == "hint") return true; sender = sender.parentNode; } document.getElementById("hint").style.display = "none"; }
if (window.addEventListener) { window.addEventListener("mousedown", clickHandler, false); } else { window.document.attachEvent("onmousedown", clickHandler); } //end function clickHandler(evnt)
|
|