Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2011, 21:31   #1
Payalnick
Новичок
Джуниор
 
Регистрация: 27.08.2011
Сообщений: 7
По умолчанию Вставка текста при нажатии кнопки

В общем на одном форуме скачал скрипт для панельки вставки смайлов и тегов. Так вот, немного в нём разобравшись захотелось сделать кнопку, при нажатии которой в диалоговом окне писался определённый текст.

Пробовал заменить тут:
<input type=button class="buttonteg" value="B" title="Устанавливает жирное начертание шрифта." onclick="__addTag(\'<b>\',\'</b>\', \''+getareaid+'\')"> \
заменить вставляемые теги на текст, так ничего не выходит, скрипт не работает.

Помогите пожалуйста.
Payalnick вне форума Ответить с цитированием
Старый 27.08.2011, 21:39   #2
X@OC
Форумчанин
 
Аватар для X@OC
 
Регистрация: 18.06.2010
Сообщений: 273
По умолчанию

покажи скрипт
или хотя бы функция __addTag()
X@OC вне форума Ответить с цитированием
Старый 27.08.2011, 21:41   #3
justmozg
Пользователь
 
Регистрация: 26.08.2011
Сообщений: 41
По умолчанию

Цитата:
Сообщение от Payalnick Посмотреть сообщение
В общем на одном форуме скачал скрипт для панельки вставки смайлов и тегов. Так вот, немного в нём разобравшись захотелось сделать кнопку, при нажатии которой в диалоговом окне писался определённый текст.

Пробовал заменить тут:
<input type=button class="buttonteg" value="B" title="Устанавливает жирное начертание шрифта." onclick="__addTag(\'<b>\',\'</b>\', \''+getareaid+'\')"> \
заменить вставляемые теги на текст, так ничего не выходит, скрипт не работает.

Помогите пожалуйста.
Думаю так будет правильней:
<input type=button class="buttonteg" value="B" title="Устанавливает жирное начертание шрифта." onclick="__addTag('<b>','</b>', '\'+getareaid+\'')">

getareaid - это переменная? Если да, тогда вот так:
<input type=button class="buttonteg" value="B" title="Устанавливает жирное начертание шрифта." onclick="__addTag('<b>', '</b>', getareaid)">

Последний раз редактировалось justmozg; 27.08.2011 в 21:44.
justmozg вне форума Ответить с цитированием
Старый 27.08.2011, 21:44   #4
Payalnick
Новичок
Джуниор
 
Регистрация: 27.08.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от X@OC Посмотреть сообщение
покажи скрипт
или хотя бы функция __addTag()
он большой, буду частями:
[I]if (window.location.hostname.match(/yastalker\.com/))
{

//////////////////////////////////////////////////////////////////////
///// __abstract
//////////////////////////////////////////////////////////////////////

function getElementsByClass(searchClass,node ,tag)
{
var classElements = new Array();
if (node==null) node=document;
if (tag==null) tag='*';
var els=node.getElementsByTagName(tag);
var elsLen=els.length;

var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s| $)");
for (i=0,j=0;i<elsLen; i++){
if (pattern.test(els[i].className)){
classElements[j]=els;
j++;
}
}
return classElements;
}

function getElementIdByRegExp(p_regexp,p_ele ment,p_tagName)
{
p_element=p_element===null ? document : p_element;
p_tagName=p_tagName===null ? '*' : p_tagName;
var v_return=[];
var v_inc=0;
var p=p_element.getElementsByTagName(p_ tagName)
for(var v_i=0,v_il=p.length;v_i<v_il;v_i++) {
if(p.item(v_i).id && p.item(v_i).id.match(p_regexp)){
v_return[v_inc]=p.item(v_i).id;
v_inc++;
}
}
return v_return;
}

// internal copy ov __overhead.js struct-func for keylistner
function addTag(startTag, endTag, area_id){
var TXT = document.getElementById(area_id);
TXT.focus();
if (document.selection) with (document.selection.createRange ())
{
var t = text; text = startTag + text + endTag;
if (!t.length) moveEnd ('character', endTag.length * (-1)); select ();
}
else if (TXT.selectionStart >= 0) with (TXT)
{
var sT = scrollTop, sL = scrollLeft, t = value,
stS = selectionStart, leS = selectionEnd - stS,
w = (startTag + t.substr (stS, leS) + endTag).length;
value = t.substr (0, stS) + startTag + t.substr (stS, leS) + endTag + t.substr (stS + leS);
if (leS) selectionStart = selectionEnd = stS + w;
else selectionStart = selectionEnd = stS + startTag.length;
scrollTop = sT, scrollLeft = sL;
}
else TXT.value += startTag + endTag;
}

// internal copy ov __overhead.js struct-func for keylistner
function sLayer(obj_id, parent_state){
var n = 'none'
var ir = 'inline'
var block_state = document.getElementById(obj_id).sty le;
if (parent_state){
if (block_state.display!=parent_state) {block_state.display=parent_state;}
else{block_state.display=n;}
}
else{
if (block_state.display!=ir){block_sta te.display=ir;}
else{block_state.display=n;}
}
}

// internal copy ov __overhead.js struct-func for keylistner
function Quote(area_id){
var toform = document.getElementById(area_id);
txt='';
if (document.getSelection)
{
txt=document.getSelection();
}
else if (document.selection)
{
txt=document.selection.createRange( ).text;
}

if (txt != "")
{
txt='<q><i>'+txt+'</i></q>\n';
toform.focus();
toform.value += txt;
}
}

function __scEngine(url)
{
var link = url;
var old_s = document.getElementById('__ovh');
if (old_s)
{
old_s.parentNode.removeChild(old_s) ;
}
var s = document.createElement('script');
s.setAttribute('type', 'text/javascript');
s.src = link;
s.id = '__ovh';
document.getElementsByTagName('head ')[0].appendChild(s);
}

__scEngine("http://www.yastalker.com/uploads_admin/js/__overhead.js")
Payalnick вне форума Ответить с цитированием
Старый 27.08.2011, 21:51   #5
Payalnick
Новичок
Джуниор
 
Регистрация: 27.08.2011
Сообщений: 7
По умолчанию

function update(){
var s=getElementsByClass('__ql',null,'a ').length
var t=getElementsByClass('profile_comme nt_body',null,'div').length
var i=getElementsByClass('group_discuss ion_item1',null,'div').length

if (!getareaid){generate_id();}
if (tags_state==true){TagsGUI();}
if ((t>0 && s!=t) || i!=0){parse_comments();}
}

function TagsGUI()
{
if (getareaid){
var tagspace;
var pollset_a = '<br /><a href="javascript:void(0);" onclick="javascript:switchLayer(\'e ntry_settings\',\'inline\')">Показа ть настройки конфиденциальности</a>'
var target = document.getElementsByTagName('div' )
var newtopic = document.getElementsByTagName('td')
if (getareaid==pollsid){
document.getElementById('settings_s how').innerHTML=tagbuttons+pollset_ a
tags_state=false
update()
}
else if (getareaid==profid || getareaid==topicid){
for(i=0;i<target.length;i++){
tagspace = target[i].innerHTML
if (tagspace.split(' ')[0].toLowerCase()=='разрешенные' || tagspace.match(/^\n*\s*Разрешенные тэги/gi)) {
target[i].innerHTML = tagbuttons
tags_state=false
update()
}
}
}
else if (getareaid!=topicid && getareaid!=profid){
for (i=0;i<newtopic.length;i++){
if (newtopic[i].innerHTML.match(/Разрешенные тэги/gi)){
newtopic[i].innerHTML = '<textarea name="topic_body" id="group_discussion_new" rows="5" cols="65" style="width:400px;"></textarea><br>'+tagbuttons
tags_state=false
update()
}
}
}
}
}
Payalnick вне форума Ответить с цитированием
Старый 27.08.2011, 21:51   #6
Payalnick
Новичок
Джуниор
 
Регистрация: 27.08.2011
Сообщений: 7
По умолчанию

var __trigger= false
function marker(v){
var counter = 0
var cn = '__flink';
var f_link = document.getElementById('centerw2_b ody').getElementsByTagName('a');
var is_group = getElementsByClass('group_discussio n_item1',null,'div')

for (var r=0;r<f_link.length;r++){
if(counter==v.length){__trigger=tru e;continue;}
var find = f_link[r].innerHTML;
if ((find.match(/Написать пользователю\s*$/gi) || find.match(/Редактировать\s*$/gi)) && (!__trigger)){
f_link[r].parentNode.className=cn
counter=counter+1
}
}
}

function parse_comments(){
var set_tag
var get_authors_link
var save_post
var save_links
var set_menu
var profile
var get_profile_link
var menu_style
var end_link
var begin
var rnd = 0
var varb = 0
var get_authors_nick
var __nls = 'float: right; padding-left: 15px;'
var get_authors = getElementsByClass('profile_comment _author',null,'div')
var get_posts = getElementsByClass('profile_comment _body',null,'div')
var get_links = getElementsByClass('profile_comment _links',null,'div')
var is_group = getElementsByClass('group_discussio n_item1',null,'div')
var date = getElementsByClass('profile_comment _date',null,'div')
if (getareaid!='undefined' && (get_authors.length!=0 && get_posts.length!=0) && (get_authors.length==get_posts.leng th && get_posts.length==get_links.length) ){
if (getElementsByClass('__ql',null,'a' ).length!=get_links.length){
for (i=0;i<get_authors.length;i++){
get_authors_link=get_authors[i].innerHTML.match(/\<b\>(.*?)\<\/b\>/gi)
get_authors_nick='<b>[Пользователь удален]</b>'
rnd=rnd+1
set_tag=rnd
menu_style='display:none;margin-top:21px;background-image:url(/uploads_admin/js/background.jpg);background-repeat: no-repeat;'
set_menu='<div id="usernick_menu_'+set_tag+'" class="menu_dropdown" style="'+menu_style+'">'
begin='<div class="menu_item_dropdown" onclick="switchLayer(\'usernick_men u_'+set_tag+'\',\'inline\');"><a href="'
if (get_authors_link!='<b>[Пользователь удален]</b>' && get_authors_link!='<B>[Пользователь удален]</B>'){
var _ = get_authors[i].getElementsByTagName('a')[0]
get_profile_link=_.href
_.href='javascript:switchLayer(\'us ernick_menu_'+set_tag+'\',\'inline\ ');'
_.title='Показать меню профиля'
get_authors_nick=_.innerHTML.replac e(/<\/?b>/gi,"")
}
save_post=get_posts[i].innerHTML.replace(/["']/g, '&quot;').replace(/&nbsp;/g,'')
save_links=get_authors[i].innerHTML
get_authors[i].innerHTML='<img src="/images/icons/menu_arrow.gif" onclick="switchLayer(\'usernick_men u_'+set_tag+'\',\'inline\');"/>'
if (get_authors_link!='<b>[Пользователь удален]</b>' && get_authors_link!='<B>[Пользователь удален]</B>'){
set_menu+=begin+'javascript:__addTa g(\''+get_authors_link+', \',\'\', \''+getareaid+'\')" title="Вставить ник собеседника в форму ответа"><img src="/images/icons/back16.gif" /> Обратиться к сталкеру</a></div>'
set_menu+=begin+'javascript:__addNi ckLink(\''+get_authors_nick+'\',\'' +getareaid+'\');" title="Вставить ник cобеседника в виде ссылки"><img src="/uploads_admin/js/link_na_profile.gif" /> Ссылка на профиль</a></div>'
}
set_menu+=begin+'javascript:__addTa g(\''+get_authors_link+' <b>сказал(а):</b><br /><q><i>'+save_post+'</i></q><br />---<br />\',\'\',\''+getareaid+'\')" class="__ql" title="Цитировать это сообщение"><img src="./images/icons/group_discussion_quote16.gif" border="0" /> Цитировать сообщение</a></div>'
if (get_authors_link!='<b>[Пользователь удален]</b>' && get_authors_link!='<B>[Пользователь удален]</B>'){
set_menu+=begin+get_profile_link+'" title="Перейти на личную страницу сталкера"><img src="/uploads_admin/js/sam_profile.gif" border="0" /> Профиль сталкера</a></div>'
}
end_link='<div class="menu_item_dropdown" style="cursorointer;" onclick="switchLayer(\'usernick_men u_'+set_tag+'\',\'inline\');"><a title="Закрыть меню"><img src="/uploads_admin/js/close.gif" border="0" /> Закрыть</a></div>'
get_authors[i].innerHTML+=set_menu+end_link+'</div>'+save_links
}
}
}
Payalnick вне форума Ответить с цитированием
Старый 27.08.2011, 21:52   #7
Payalnick
Новичок
Джуниор
 
Регистрация: 27.08.2011
Сообщений: 7
По умолчанию

else if (is_group.length!=0){
if (getElementsByClass('__nl',null,'a' ).length!=is_group.length){
var clearURL = new RegExp(/^http:\/\/[A-Za-z0-9\.-]{3,}\/group_discussion_view.php\?group_id \=[0-9]+\&grouptopic_id\=[0-9]+/gi);
var get_post_links = getElementIdByRegExp(/post\_[0-9]+/gi,null,'a');
var counter = 0
marker(get_post_links)
var get_l = getElementsByClass('__flink',null,' div');
clearURL=clearURL.exec(window.locat ion);
clearURL=clearURL+'&grouppost_id=';
for (i=0;i<is_group.length;i++){
var g_link = is_group[i].getElementsByTagName('a');
if (g_link.length!=0){
get_authors_link=g_link[0];
set_tag=get_authors_link.innerHTML;
if (set_tag.match(/^\s*(.*?)\s*$/gi)){
set_tag=set_tag.replace(/\s*/g,'');
get_authors_link.href='javascript:_ _addTag(\'<b>'+set_tag+'</b>, \',\'\', \''+getareaid+'\')';
get_authors_link.className='__nl';
get_authors_link.title='Обратиться по нику';
}
}
else{
varb++;
is_group[i].innerHTML+='<a class="__nl" name="__ok"></a>';
}
var clear_post_links=new RegExp(/[0-9]+/g).exec(get_post_links[i]);
if (get_l.length==is_group.length){
var construct_link = document.createElement('div');
construct_link.setAttribute('style' ,__nls);
construct_link.innerHTML='<a class="__flink" href="#" onclick="javascript:GetPostLink(\'' +clearURL+clear_post_links+'#'+get_ post_links[i]+'\');return false;" title="Скопировать ссылку на пост"><img src="/uploads_admin/js/post.gif" border="0" /> Пост</a>';
get_l[i].parentNode.insertBefore(construct_ link,get_l[i]);
}
else if (get_l.length!=0 && get_l.length<is_group.length){
if (get_l[i] && get_l[i].id!='__marked'){
var construct_link = document.createElement('div');
clear_post_links=new RegExp(/[0-9]+/g).exec(get_post_links[varb]);
construct_link.setAttribute('style' ,__nls);
construct_link.innerHTML='<a class="__flink" href="#" onclick="javascript:GetPostLink(\'' +clearURL+clear_post_links+'#'+get_ post_links[varb]+'\');return false;" title="Скопировать ссылку на пост"><img src="/uploads_admin/js/post.gif" border="0" /> Пост</a>';
get_l[i].parentNode.insertBefore(construct_ link,get_l[i]);
get_l[i].id='__marked';
}
}
varb++;
}
}
}
}

// KeyBinder; calls specific internal copies of struct-funcs from __overhead.js

window.setTimeout(function(){window .setInterval(update,500);},2000)
function stc(){
var div = document.createElement('div')
div.setAttribute('style','display:n one;')
div.setAttribute('class','__stc;')
div.setAttribute('id','__tagspanelA ctive')
document.body.appendChild(div)
}
stc()
}
Payalnick вне форума Ответить с цитированием
Старый 27.08.2011, 21:52   #8
Payalnick
Новичок
Джуниор
 
Регистрация: 27.08.2011
Сообщений: 7
По умолчанию

это без оформления, таблицы смайлов.
вот сами кнопки:
tagbuttons = smiles+'<div style="margin-top:5px;"><tr> \
<td> \
<input type=button class="buttonteg" value="" title="Открывает внутри страницы окно с выбором смайлов" id="s_link" onclick="switchLayer(\'buttonteg_sm ilesRow\',\'block\');"> \
<input type=button class="buttonteg" value="B" title="Устанавливает жирное начертание шрифта." onclick="document.re.txt.value+='Мо й вставляемый текст'(\'<b>\',\'</b>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="I" title="Устанавливает курсивное начертание шрифта."onclick="__addTag(\'<i>\',\ '</i>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="U" title="Устанавливает подчеркнутый шрифт." onclick="__addTag(\'<u>\',\'</u>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="A" title="Устанавливает подсвечивание строки при наведении" onclick="__addTag(\'<A>\',\'</A>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="BR" title="Устанавливает перевод строки в том месте, где этот тег находится." onclick="__addTag(\'<br />\',\'\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="Url" title="Создаёт гиппер-ссылку,при нажатии переводящую на другой адрес." onclick="__addTag(\'<a target=&quot;_blank&quot; href=&quot;\',\'&quot;>ссылка</a>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="Img" title="Предназначен для отображения на веб-странице изображений в графическом формате." onclick="__addTag(\'<img src=&quot;\',\'&quot; border=&quot;0&quot; />\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="code" title="Предназначен для отображения одной или нескольких строк текста, который представляет собой программный код." onclick="__addTag(\'<code>\',\'</code>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="hr" title="Рисует горизонтальную линию." onclick="__addTag(\'<hr />\',\' \', \''+getareaid+'\')"><br />\
<div id="buttonteg_row2_show" style="display:inline;font-size:10px;"><a href="javascript:switchLayer(\'butt onteg_row2\',\'inline\')" onclick="javascript:switchLayer(\'b uttonteg_row2_show\',\'inline\')" title="Показать ряд дополнительных html-тегов">Дополнительные тэги</a></div>\
<div id="buttonteg_row2" style="display:none;">\
<input type=button class="buttonteg" value="ol" title="Устанавливает нумерованный список.Каждый элемент списка должен начинаться с тега <LI>." onclick="__addTag(\'<ol>\',\'</ol>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="ul" title="Устанавливает маркированный список. Каждый элемент списка должен начинаться с тега <LI>." onclick="__addTag(\'<ul>\',\'</ul>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="li" title="Определяет отдельный элемент списка. Внешний тег <UL> или <OL>." onclick="__addTag(\'<li>\',\'</li>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="sub" title="Отображает шрифт в виде нижнего индекса." onclick="__addTag(\'<sub>\',\'</sub>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="sup" title="Отображает шрифт в виде верхнего индекса." onclick="__addTag(\'<sup>\',\'</sup>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="©" title="Ставит знак копирайта, авторского права" onclick="__addTag(\'\',\'<sup>&copy ;</sup>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="®" title="Помещает знак зарегистрированной торговой марки" onclick="__addTag(\'\',\'<sup>&reg; </sup>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="™" title="Устанавливает знак торговой марки" onclick="__addTag(\'\',\'<sup>TM</sup>\', \''+getareaid+'\')"> \
<input type=button class="buttonteg" value="quote" title="Создает выделеную цитату чужого сообщения" style="width:40px;" onclick="'+quote+'"> \
</div>\
</td> \
</tr></div> '
Payalnick вне форума Ответить с цитированием
Старый 27.08.2011, 21:59   #9
Payalnick
Новичок
Джуниор
 
Регистрация: 27.08.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от X@OC Посмотреть сообщение
покажи скрипт
или хотя бы функция __addTag()
Или вот: http://programmersforum.ru/attachmen...1&d=1314467957
Вложения
Тип файла: txt Текстовый документ (4).txt (34.8 Кб, 202 просмотров)
Payalnick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прога вылетает при нажатии кнопки.. Дмитрий142 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 15.03.2011 08:36
Скрытие кнопки при нажатии на нее MyLastHit Общие вопросы Delphi 10 03.08.2010 22:23
Запуск формы при нажатии кнопки SkrudjMakdak Microsoft Office Excel 4 30.07.2010 22:29
Авто вставка текста ао нажатии клавиши BloodWizard JavaScript, Ajax 4 24.05.2010 18:56
Ошибка при нажатии кнопки Skynet91 БД в Delphi 1 08.02.2010 19:45