Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   О сайте и форуме (http://forum.oszone.net/forumdisplay.php?f=17)
-   -   Быстрая цитата (bookmarklet) для браузеров Opera и Mozilla (http://forum.oszone.net/showthread.php?t=41507)

Vadikan 24-11-2004 07:55 274919

Быстрая цитата (bookmarklet) для браузеров Opera и Mozilla
 
Доброго времени суток!

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

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

Bookmarklet, вставляющую цитату в формы быстрого и расширенного ответа на конференции OSZone, можно найти тут. Сама идея javascript кода была почерпнута отсюда.

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

Доброго времени суток!

Форматирование цитаты можно изменить, отредактировав javascript код в свойствах закладки. Понятно, что теги форума можно подставить любые.
PHP код:

[quote][font=georgia][size=2][i]"+str+"[/i][/size][i][/i][/font][i][/i][/quote

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

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

Vlad Drakula 24-11-2004 09:00 274935

Vadikan
если это работает под оперой и мазилой то это хорошо, т.к. код для эксплорере а меня уже есть.

mar 24-11-2004 10:20 274950

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

Vadikan 24-11-2004 10:26 274953

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

[mzd] 24-11-2004 12:07 274978

Vlad Drakula
Не поделишься?

Vlad Drakula 24-11-2004 14:43 275012

[mzd]
сейчас выдеру из старого движка...
( или из какогонибуть другово)

Vlad Drakula 24-11-2004 14:44 275013

тут у меня возник вопрос - нормально если будет две кнопки для цитирования одна для оперы вторая для эксплорера?

BigMac 24-11-2004 17:33 275061

Vlad Drakula
Нет...надо, чтобы форум автоматически выбирал что пользователю выдавать

Vlad Drakula 25-11-2004 01:56 275176

BigMac
форум можно обмануть...
хотя возможно и нет...
там в шаблонах вроде есть возможность определять какому броузеру что отдавать...

hasherfrog 14-01-2005 01:06 288396

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

Vlad Drakula 14-01-2005 01:58 288404

Vadikan

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

PHP код:

function pasteN(text)
{
  if (
text != ''document.postform.post.value document.postform.post.value "[b]" text "[/b]\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='[q]'+txt+'[/q]\n'

function 
pasteQ() { 
document.postform.post.value=document.postform.post.value+txt


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

Vadikan 14-01-2005 09:11 288449

Vlad Drakula
Я уже и сам не помню как я это сделал ;-) Надо было по горячим следам. Вроде я на основе этого делал
PHP код:

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+"[b]"+name+"[/b]"+" \n";
}
}


var 
txt='' 
function get_selection() { 
txt='' 
if (document.getSelection) {txt=document.getSelection()
if (!
Opera7){
selection selection.replace(/rnrn/gi"_doublecaret_");
selection selection.replace(/rn/gi" ");
       while (
selection.indexOf("  ") !=-1selection selection.replace(/  /gi""); 
selection selection.replace(/_doublecaret_/gi"\r\n\r\n");
}
  } 
else if (
document.selection) {txt=document.selection.createRange().text;} 
txt='[quote]'+txt+'[/quote]'


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


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

//
(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?. Раз мой вариант работает с Firefox и Опера, то может быть можно сделать что-то типа: если IE, использовать твой код, если не IE, то мой. Я не специалист по JS. Даже если hasherfrog думает, что я крут ;)

Vadikan 14-01-2005 09:20 288452

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


mar 14-01-2005 10:31 288471

Цитата:

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

Vadikan 15-01-2005 01:52 288676

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


Время: 13:45.

Время: 13:45.
© OSzone.net 2001-2025