пятница, 18 марта 2011 г.

Вставка данных в форму при клике на слово, ник, х.з. на javascrip (JS)

Добро пожаловать в планеарий! ... Весьма странное заболевание костей.


Как сделать, чтобы при клике мышью на ник, или просто ссылку или слово, или картинку, в поле ввода (форму) вставлялось это слово или текст. Готовое как всегда х*й найдёшь в интернете. Х*й знает как эти javascript'ы правильно искать. Имеется ввиду как на форуме - при клике на ник пользователя, он вставляется в форму ответа для цитирования. Но использовать для обычного сайта, для вставки в формы уже готовых слов. бла бла..


Выдрано прямо с форума: (код грязный, хотя удалено с js файла кода на 20кб и оставлено 4кб и работает!, знать бы js возможно ещё можно его сократить)


Форма:        
               
Пример ссылки, которая будет вставляться в форму при клике:
Вставить ещё раз вставить!

Код этого: 

<script>

  function ins(name){
if (name != "") paste(name+" ",1);
}

function Insert(text){
if (text!="") paste("[quote]"+text+"[/quote]\n", 0);
}

function Insertranged(text,autorpost,datapost){
if (text!="") paste("[quote="+autorpost+","+datapost+"]"+text+"[/quote]\n", 1);
}

function paste(text, flag){
if (document.REPLIER) {
if ((document.selection)&&(flag)) {
document.REPLIER.Post.focus();
document.REPLIER.document.selection.createRange().text = text;
} else document.REPLIER.Post.value += text;
}
}

function get_selection() {
if (document.getSelection){
selection = document.getSelection();
selection = selection.replace(/\r\n\r\n/gi, "_doublecaret_");
// selection = selection.replace(/\r\n/gi, " ");
while (selection.indexOf(" ") !=-1) selection = selection.replace(/ /gi, "");
selection = selection.replace(/_doublecaret_/gi, "\r\n\r\n");
} else selection = document.selection.createRange().text;
}

function InsertSelection() {
get_selection();
Insert(selection);
}

function initSpoilers(context)
{
var context = context || 'body';
$('div.sp-head-wrap', $(context)).click(function(){
$(this).find('div.sp-head').toggleClass('unfolded');
$(this).next('div.sp-body').slideToggle('fast');
});
}


$(document).ready(function(){
initSpoilers('body');
});
function valid()
{if(document.getElementById("fluder"))document.getElementById("fluder").value = '128'}


var ap_instances = new Array();


function ap_stopAll(playerID) {
for(var i = 0;i try {
if(ap_instances[i] != playerID) document.getElementById("audioplayer" + ap_instances[i].toString()).SetVariable("closePlayer", 1);
else document.getElementById("audioplayer" +
ap_instances[i].toString()).SetVariable("closePlayer", 0);
} catch( errorObject ) {
// stop any errors
}
}
}


function ap_registerPlayers() {
var objectID;
var objectTags = document.getElementsByTagName("object");
for(var i=0;i objectID = objectTags[i].id;
if(objectID.indexOf("audioplayer") == 0) {
ap_instances[i] = objectID.substring(11, objectID.length);
}
}
}

var ap_clearID = setInterval( ap_registerPlayers, 100 );


</script> 


Форма:


<form name='REPLIER' method='post' > <textarea cols="80" rows="15" wrap="soft" name="Post" tabindex="3" class="textinput" ></textarea> </form> 

Cсылка: 

<a href="javascript:ins('Вставляемый текст')">Ссылка</a>