посмотрите стр. из сайта [в]контакте там оно используется.. пожалуйста помогите с ней разобратся.. тобишь выделить функцию со всего кода и показать на любой форме пример ее использования)) или помогите сделать что то подобное!
(Добавление)
CODE (text):
скопировать код в буфер обмена
скопировать код в буфер обмена
- function checkAutosizeTextarea(id, e) {
- var text_area = ge(id);
- var val = text_area.value;
- if (e) {
- if ((e.keyCode == 13) && (!e.ctrlKey) && (!e.altKey)) {
- val += '\n';
- }
- }
- if (val == eval(id + '_params_wrapper["old_v"]')) {
- return;
- }
- setFieldValue(eval(id + '_params_wrapper'), 'old_v', val);
- var text_area_div = ge(id + 'sdfasta');
- var htmled_val = val.replace(/&/g,'&').replace(/"/g,'"').replace(/'/g,''').replace(/</g,'<').replace(/>/g,'>').replace(/\n/g,'<br />');
- text_area_div.innerHTML = htmled_val;
- text_area = ge(id);
- text_area_div = ge(id + 'sdfasta');
- var new_height = (text_area_div.clientHeight + eval(id + '_params_wrapper["font_s"]') * 2);
- var min_height = eval(id + '_params_wrapper["min_h"]');
- if (new_height < min_height) {
- new_height = min_height;
- }
- text_area.style.height = new_height + "px";
- }
- function autosizeTextareaUpdated(id, pass_event) {
- return function(e) {
- checkAutosizeTextarea(id, pass_event ? e : false);
- };
- }
- function setFieldValue(obj, field, value) {
- obj[field] = value;
- }
- function makeAutosizeTextarea(id, min_height) {
- var div_for_autosize_textareas = ge('div_for_autosize_textareas');
- if (!div_for_autosize_textareas) {
- div_for_autosize_textareas = document.createElement('div');
- div_for_autosize_textareas.id = "div_for_autosize_textareas";
- document.body.appendChild(div_for_autosize_textareas);
- }
- div_for_autosize_textareas.innerHTML += '<div id="' + id + 'sdfasta" style="position: absolute; left: -10000px; top: -10000px;"></div>';
- var text_area = ge(id);
- var text_area_div = ge(id + 'sdfasta');
- text_area.style.overflowX = 'hidden';
- text_area.style.overflowY = 'hidden';
- var div_width = css.getStyle(text_area, 'width', true);
- if (!div_width) {
- div_width = parseInt(text_area.style.width);
- }
- /* if (rdyMgr.isOp) {
- div_width -= 0;
- } else if (rdyMgr.isIE) {
- div_width -= 0;
- } else if (rdyMgr.isSaf) {
- div_width -= 0;
- } else if (rdyMgr.isFF) {
- div_width -= 0;
- } else if (rdyMgr.isGC) {
- div_width -= 0;
- }*/
- text_area_div.style.width = div_width + "px";
- text_area_div.style.fontFamily = css.getStyle(text_area, 'fontFamily', false);
- text_area_div.style.fontSize = css.getStyle(text_area, 'fontSize', true) + 'px';
- text_area_div.style.lineHeight = css.getStyle(text_area, 'lineHeight');
- events.addEvent(text_area, 'keydown', autosizeTextareaUpdated(id, true));
- events.addEvent(text_area, 'keypress', autosizeTextareaUpdated(id, true));
- events.addEvent(text_area, 'keyup', autosizeTextareaUpdated(id, false));
- var old_v = '';
- var min_h = css.getStyle(text_area, 'height', true);
- if (!min_h) {
- min_h = text_area.clientHeight;
- }
- if (!min_h) {
- min_h = parseInt(text_area.style.height);
- }
- if (min_height) {
- min_h = min_height;
- }
- var font_s = css.getStyle(text_area_div, 'fontSize', true);
- eval(id + '_params_wrapper = new Object()');
- setFieldValue(eval(id + '_params_wrapper'), 'old_v', old_v);
- setFieldValue(eval(id + '_params_wrapper'), 'min_h', min_h);
- setFieldValue(eval(id + '_params_wrapper'), 'font_s', font_s);
- checkAutosizeTextarea(id);
- }
- function autosizeTextarea(id, min_height) {
- onDomReady(function() {
- makeAutosizeTextarea(id, min_height);
- });
- }