07.02.2008, 10:59 | #11 |
Администратор
Регистрация: 05.02.2007
Сообщений: 18,405
Вес репутации: 715
|
Оперисты! Они же опреовладельцы.
Вы обожаете свой браузер. Вы все вебмастера, ну или частично. откройте исходный код, найдите этот скрипт. Решите проблему - пришлите решение. Все однобраузники скажут спасибо. В ФФ то работает, в мозилле тоже. И то и другое под линухами. Значит проблема - чисто оперная.
__________________
Читаем ФАК |
07.02.2008, 12:52 | #12 | |
Новичок
Регистрация: 08.11.2007
Сообщений: 39
Вес репутации: 201
|
Ну вы и ленивые.
Цитата:
Вот кнопка и пример кода для вставки выделенного текста в поле ответа форума. Заточите под свои цели. Вам наверное только 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; } } |
|
08.02.2008, 04:08 | #13 |
Погулять вышел
Регистрация: 15.05.2007
Адрес: С-Пб! О/ВМ 50/50
Сообщений: 1,921
Вес репутации: 316
|
Ой а мне можете помочь? Для ФФ Оперы и т.д.
http://forum.sape.ru/showthread.php?t=8809 |
15.02.2008, 18:41 | #16 | |
Новичок
Регистрация: 12.02.2008
Сообщений: 7
Вес репутации: 0
|
Опера убирает selection при клике мышкой, найденное решение:
для оперы назначить обработчег: Цитата:
а в function update_snip если navigator.userAgent.match(/(Opera)/); то txt=getSelectedText(); Все работает, проверил. Всего наилучшего! На благо опероводам (и себе в том числе) |
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему БЛ? | 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, время: 11:19.