Вернуться   Форум SAPE.RU > Система SAPE.ru > Контекстные ссылки и все, что с ними связано

-->
Ответ
 
Опции темы
Старый 07.02.2008, 10:59   #11
Администратор
 
Аватар для Ank
 
Регистрация: 05.02.2007
Сообщений: 18,405
Вес репутации: 715
Ank - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущее
По умолчанию

Оперисты! Они же опреовладельцы.
Вы обожаете свой браузер. Вы все вебмастера, ну или частично.
откройте исходный код, найдите этот скрипт. Решите проблему - пришлите решение. Все однобраузники скажут спасибо.
В ФФ то работает, в мозилле тоже. И то и другое под линухами. Значит проблема - чисто оперная.
__________________
Начать зарабатывать на своих сайтах. Консультирую своих рефов по аське

Читаем ФАК
Ank вне форума   Ответить с цитированием
Старый 07.02.2008, 12:52   #12
Новичок
 
Регистрация: 08.11.2007
Сообщений: 39
Вес репутации: 201
Mongoose на пути к лучшему
По умолчанию

Ну вы и ленивые.
Цитата:
Вы обожаете свой браузер. Вы все вебмастера, ну или частично.
Большое заблуждение. Говорю со знанием дела.

Вот кнопка и пример кода для вставки выделенного текста в поле ответа форума. Заточите под свои цели. Вам наверное только insert_text() понадобится.
Кнопка:
Код:
<a href="javascript:void(0)" onClick="copyQ('Mongoose');pasteQ();">Mongoose</a>
Код:
function insert_text(open, close, no_focus)
{
    msgfield = (document.all) ? document.all.message : document.forms['postmodify']?document.forms['postmodify']['message']:document.forms['postmodify']['message'];
    var bSelStart = msgfield.selectionStart, text;
    var st = msgfield. scrollTop, sh = msgfield. scrollHeight;

    // IE support
    if (document.selection && document.selection.createRange && !bSelStart && msgfield.caretPos)
    {
        text = open;
        if (close != "") text += document.selection.createRange().text;
        text += close;
        msgfield. caretPos. text = text;
    }

    // Moz support
    else if (bSelStart || msgfield.selectionStart == '0')
    {
        var startPos = msgfield.selectionStart;
        var endPos = msgfield.selectionEnd;
        text = msgfield.value.substring(0, startPos) + open;
        if (close != "") text += msgfield.value.substring(startPos, endPos);
        text += close + msgfield.value.substring(endPos, msgfield.value.length);
        msgfield.value = text;
		endPos = close. length? endPos: startPos;
		msgfield.selectionStart = endPos + open.length + close.length;
		msgfield.selectionEnd = endPos + open.length + close.length;
    }

    // Fallback support for other browsers
    else
    {
        msgfield.value += open + close;
    }
    msgfield. scrollTop = st + msgfield. scrollHeight - sh;
    if (no_focus != '1' ) msgfield.focus();
    return;
}

function copyQ(author) { 
	txt='';
		if (document.selection) 
			{txt=document.selection.createRange().text;}
			else 
				if (window.getSelection) 
					{txt=window.getSelection()} 
		if (txt>"")txt='[quote author='+author+']'+txt+'[/quote]\n';
			else if(author>"")txt=''+author+'';
} 

function pasteQ(){
	if (txt!='' && document.forms['postmodify']['message']) 
		insert_text(txt,'','1'); 
} 

function pasteN(text){ 
	if (text!='' && document.forms['postmodify']['message'])
		insert_text("" + text + '\n', '', '1');
}

function setCaret (textObj) {
        if (textObj.createTextRange) {
        textObj.caretPos = document.selection.createRange().duplicate();
        operastart=textObj.selectionEnd;
        }
}
Mongoose вне форума   Ответить с цитированием
Старый 08.02.2008, 04:08   #13
Погулять вышел
 
Аватар для den78ru
 
Регистрация: 15.05.2007
Адрес: С-Пб! О/ВМ 50/50
Сообщений: 1,921
Вес репутации: 316
den78ru - прекрасное будущееden78ru - прекрасное будущееden78ru - прекрасное будущееden78ru - прекрасное будущееden78ru - прекрасное будущееden78ru - прекрасное будущееden78ru - прекрасное будущееden78ru - прекрасное будущееden78ru - прекрасное будущееden78ru - прекрасное будущееden78ru - прекрасное будущее
По умолчанию

Ой а мне можете помочь? Для ФФ Оперы и т.д.
http://forum.sape.ru/showthread.php?t=8809
den78ru вне форума   Ответить с цитированием
Старый 11.02.2008, 08:50   #14
Новичок
 
Регистрация: 28.03.2007
Сообщений: 28
Вес репутации: 0
anton123 нам пока неизвестен
По умолчанию

Так и не работает
anton123 вне форума   Ответить с цитированием
Старый 15.02.2008, 07:37   #15
Новичок
 
Регистрация: 28.03.2007
Сообщений: 28
Вес репутации: 0
anton123 нам пока неизвестен
По умолчанию

Походу забили на Opera.
anton123 вне форума   Ответить с цитированием
Старый 15.02.2008, 18:41   #16
Новичок
 
Регистрация: 12.02.2008
Сообщений: 7
Вес репутации: 0
abbyevg на пути к лучшему
Thumbs up

Опера убирает selection при клике мышкой, найденное решение:

для оперы назначить обработчег:

Цитата:
<script language="JavaScript">
<!--
var selectedText = "";
window.addEventListener( 'load', init, false );

function init() {
if( window.getSelection || ( document.selection && document.selection.createRange ) )
document.addEventListener( 'mouseup', setSelectedText, false );
}
function setSelectedText() {
var txt = window.getSelection ? window.getSelection().toString() : document.selection.createRange().text;
if( txt.length > 0 ) selectedText = txt;
}

function getSelectedText() {
return selectedText;
}
//-->

</script>

а в function update_snip
если navigator.userAgent.match(/(Opera)/);
то txt=getSelectedText();

Все работает, проверил.
Всего наилучшего! На благо опероводам (и себе в том числе)
abbyevg вне форума   Ответить с цитированием
Старый 15.02.2008, 19:02   #17
Новичок
 
Регистрация: 02.11.2007
Сообщений: 91
Вес репутации: 203
mustafa скоро станет известенmustafa скоро станет известен
По умолчанию

abbyevg, в
Цитата:
Версия 9.24
Сборка 8816
Платформа Win32
Система Windows XP
Java Sun Java Runtime Environment version 1.5
заработало. Залил ваш код в Sape.

p.s. спасибо
mustafa вне форума   Ответить с цитированием
Старый 15.02.2008, 19:22   #18
Новичок
 
Регистрация: 12.02.2008
Сообщений: 7
Вес репутации: 0
abbyevg на пути к лучшему
По умолчанию

не стоит, мелочи
abbyevg вне форума   Ответить с цитированием
Старый 19.02.2008, 07:14   #19
Новичок
 
Регистрация: 28.03.2007
Сообщений: 28
Вес репутации: 0
anton123 нам пока неизвестен
По умолчанию

abbyevg спасибо!!!
anton123 вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему БЛ? den78ru Курилка 11 06.12.2009 17:55
Почему? ддшкшлщту Общие вопросы оптимизации 3 02.07.2008 18:13
Opera 9.5 и аякс Fanamura Ошибки при работе с системой 15 24.06.2008 11:17
Почему так? serhio11 Google, MSN, Yahoo 2 14.12.2007 13:05
Почему так? Lordш Вопросы по работе системы 18 06.06.2007 02:28


Часовой пояс GMT +3, время: 23:24.