Войти

Показать полную графическую версию : Быстрая цитата (bookmarklet) для браузеров Opera и Mozilla


Vadikan
24-11-2004, 07:55
Доброго времени суток!

Пока в новом движке не реализована функция быстрого цитирования, я решил поделиться с участниками быстрой цитатой собственного изготовления. Она реализована в виде bookmarklet.

Bookmarklets - это кусочки Javascript кода, которые запускаются из javascript ссылок. Вы можете добавить их в закладки перетащив мышью на панель закладок браузера или из контекстного меню, вызвыаемого правым кликом на ссылке. Больше информации о bookmarklets, а также неплохую коллекцию оных, можно найти, к примеру, тут (http://www.squarefree.com/bookmarklets/).

Bookmarklet, вставляющую цитату в формы быстрого и расширенного ответа на конференции OSZone, можно найти тут (http://portfolio.iu.edu/vsterkin/Temp/quote/quote.html). Сама идея javascript кода была почерпнута отсюда (http://www.ibresource.ru/forums/index.php?showtopic=1133&view=findpost&p=18562).

Для цитирования надо выделить желаемый текст и кликнуть на закладку. По умолчанию цитата выглядит такДоброго времени суток!

Форматирование цитаты можно изменить, отредактировав javascript код в свойствах закладки. Понятно, что теги форума можно подставить любые. "+str+"
Как следует из названия темы, быстрая цитата не работает в Internet Explorer. Я не пользуюсь этим браузером (дома - Opera, на работе - Firefox), и поэтому не особо пытался сделать универсальную цитату. Если у вас есть желание и достаточные знания javascript, то дерзайте. В таком случае, не исключаю, что конечный результат можно будет прикрутить к движку форума.

Спасибо за внимание.

Vlad Drakula
24-11-2004, 09:00
Vadikan
если это работает под оперой и мазилой то это хорошо, т.к. код для эксплорере а меня уже есть.

mar
24-11-2004, 10:20
Vadikan
sorry - на выходные уезжала, так что до разбирательств с этой штукой руки не дошли, но, судя по тому, что вы оба пишите,- уже и не надо?

Vadikan
24-11-2004, 10:26
mar
Ну непосредственно в bookmarklet я это запихал, и проверил на двух доступных мне браузерах. Дальше этой точки мне продвинуться помешали лень и отсутствие нбх пользоваться IE. Да и не такой я знаток js, чтоб соорудить код с выбором бразуера и выполнением соотв. функции. Если у тебя есть наработки в этом направлении, то ты, возможно, сможешь сделать что-то очень полезное :)

[mzd]
24-11-2004, 12:07
Vlad Drakula
Не поделишься?

Vlad Drakula
24-11-2004, 14:43
[mzd]
сейчас выдеру из старого движка...
( или из какогонибуть другово)

Vlad Drakula
24-11-2004, 14:44
тут у меня возник вопрос - нормально если будет две кнопки для цитирования одна для оперы вторая для эксплорера?

BigMac
24-11-2004, 17:33
Vlad Drakula
Нет...надо, чтобы форум автоматически выбирал что пользователю выдавать

Vlad Drakula
25-11-2004, 01:56
BigMac
форум можно обмануть...
хотя возможно и нет...
там в шаблонах вроде есть возможность определять какому броузеру что отдавать...

hasherfrog
14-01-2005, 01:06
Vadikan
Ты крут. Я прозрел. Теперь знаю, чем мне заняться, если будет время. Время бы только это самое найти...

Vlad Drakula
14-01-2005, 01:58
Vadikan

ты имел в виду этот код:




function pasteN(text)
{
if (text != '') document.postform.post.value = document.postform.post.value + "" + text + "\n";
}

if (document.selection||document.getSelection) {Q=true} else {var Q=false}
var txt=''

function copyQ() {
txt=''
if (document.getSelection) {txt=document.getSelection()}
else if (document.selection) {txt=document.selection.createRange().text;}
txt=''+txt+'\n'
}
function pasteQ() {
document.postform.post.value=document.postform.post.value+txt;
}




ты бы не мог запостить суда работающий код, а то там дочерта листингов...

Vadikan
14-01-2005, 09:11
Vlad Drakula
Я уже и сам не помню как я это сделал ;-) Надо было по горячим следам. Вроде я на основе этого делал
var IE5 = (navigator.userAgent.indexOf('MSIE')!=-1) && (navigator.userAgent.indexOf('Opera')==-1)
var Opera7 = (navigator.userAgent.indexOf('Opera')!=-1) && (navigator.userAgent.charAt(navigator.userAgent.indexOf('Opera')+6)>=7)

function ins(name){
if (document.REPLIER) {
var input=document.REPLIER.Post;
input.value=input.value+""+name+""+" \n";
}
}


var txt=''
function get_selection() {
txt=''
if (document.getSelection) {txt=document.getSelection()
if (!Opera7){
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 if (document.selection) {txt=document.selection.createRange().text;}
txt=''+txt+''}


function Insert(){
var input=document.REPLIER.Post;
input.value=input.value+txt;
}

Для Оперы и Мозиллы работает в букмарке у меня работает такой код (слэшами обставил чтоб лучше видно было)

//
(function copy_selection() {var str = document.getSelection();document.vbform.message.value+="[quote]"+str+"";document.vbform.message.focus(); }
//

Для IE у тебя есть, значит надо сделать выбор браузера, примерно так, как сделано в том коде. Либо как-то иначе определять браузер.
How to find out if someone is using Opera? (http://www.opera.com/support/search/supsearch.dml?index=570). Раз мой вариант работает с Firefox и Опера, то может быть можно сделать что-то типа: если IE, использовать твой код, если не IE, то мой. Я не специалист по JS. Даже если hasherfrog думает, что я крут ;)

Vadikan
14-01-2005, 09:20
А в Firefox вообще сейчас не видно ссылки Цитата. В Опере и IE видно, но в IE все работает, а в Opere только теги вставляет, что уже неплохо.

mar
14-01-2005, 10:31
А в Firefox вообще сейчас не видно ссылки Цитата.
хм, только что из поста Вада узнала, что она тут вообще есть. Открыла IE - и впрямь. А я то думаю, о чем все говорят? :insane:

Vadikan
15-01-2005, 01:52
mar
Конечно, зачем им цитата на FF... жаловаться будут, что не работает ;-))




© OSzone.net 2001-2012