Полезная информация

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№175108-07-2010 00:41:01

florin72
Участник
 
Группа: Members
Зарегистрирован: 07-07-2010
Сообщений: 6
UA: Firefox 3.6

Re: Custom Buttons

Как сделать вот такие кнопки для форумов W0ZPpWYJlw.jpg

Отсутствует

 

№175208-07-2010 11:14:35

florin72
Участник
 
Группа: Members
Зарегистрирован: 07-07-2010
Сообщений: 6
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife пишет

florin72а что они делают то?если просто переход по разделам форумато смотри в  готовых кнопках там несколько вариантов кнопок с меню - выбирай который понравится и вставляй туда нужные адреса.

Эти кнопки из сборки Firefox Portable by 3Jlou.Вот здесь автор пишет как это реализовано у него(http://forum.mozilla-russia.org/viewtop … 88#p360788). Пишет что реализовано через userChrome.css.Но у меня нет в Фоксе этого файла.По этому и спрашиваю у знающих людей,как это организовать?

Отредактировано florin72 (08-07-2010 11:15:11)

Отсутствует

 

№175308-07-2010 12:04:08

florin72
Участник
 
Группа: Members
Зарегистрирован: 07-07-2010
Сообщений: 6
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife пишет

florin72userchrome.css и эта темаи CB к этому не имеет отношениявы уж определитесь как вы хотите сделать подобные кнопки если через СВ то я написал постом выше как.если через юзерхром то читаем приведённые ссылки чтоб представлять что делаемпотом создаём папки со ссылками в закладках,включаем панель закладок и выводим их туда и добавляем в юзерхром приведённый Злым код чтоб убрать подпись и сменить иконку.

Спасибо.Буду изучать

Отсутствует

 

№175408-07-2010 18:44:20

iDev.Pi
баг-репортёр
 
Группа: Extensions
Зарегистрирован: 31-01-2010
Сообщений: 2718
UA: Mozilla 2.0

Re: Custom Buttons

а как там дела-то обстоят с разработкой новой версии CB под грядущий [firefox] 4.0? После приземление кросс-платформенного метода регистрации компонентов (XPCOM) отвалилось много дополнений и CB из их числа.
Сейчас я сильно подсел на найтли билды и без кб кнопочек - ну совсем как без рук. :(

EDIT: упс, только сейчас в топике про найтли билды наткнулся на ссылочку на исправленное дополнение.

Отредактировано iDev.Pi (08-07-2010 18:52:47)


mzfx

Отсутствует

 

№175508-07-2010 18:52:44

COPA
Экспонат
 
Группа: Members
Откуда: Москва
Зарегистрирован: 11-07-2008
Сообщений: 838
UA: Minefield 4.0
Веб-сайт

Re: Custom Buttons

iDev.Pi уже есть рабочий
http://custombuttons.mozdev.org/drupal/ … ox-40b2pre

Отредактировано COPA (08-07-2010 18:53:16)

Отсутствует

 

№175610-07-2010 06:27:04

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

Возвращаясь к старому.... =)

Подскажите почему это
Секция Код:

скрытый текст
// --- Начальные установки
var open="";
var close="
";
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var oPosition = theBox.scrollTop;
var oHeight = theBox.scrollHeight;
var text=theBox.value.substring(0,startPos);
// --- Секция обработки кнопок мыши
this.onclick = function(event) {
    if(event.button == 0) {
// Действие при клике ЛКМ
text +=open+theBox.value.substring(startPos, endPos)+close;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text;
theBox.selectionStart = startPos;
theBox.selectionEnd = endPos + open.length + close.length;
var nHeight = theBox.scrollHeight - oHeight;
theBox.scrollTop = oPosition + nHeight;       
    }
    else if(event.button == 1) {
        // Действие при клике СКМ
    }
    else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        // Действие при клике ПКМ без модификаторов
var caseSensitive=true;
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
                    .getService(Components.interfaces.nsIPromptService);
var s={};
var d={};
promptService.prompt(window,'',"ведите текст",s,'',d);
s=s.value;
alert("вы набрали: \n" + s)       
    }
};
this.oncontextmenu = function(event) {
    if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        // Блокируем контекстное меню при клике ПКМ без модификаторов
        event.preventDefault();
        event.stopPropagation();
    }
};
требует двойного нажатия, а вот это например, работает сразу
Секция Код:
скрытый текст
var open="";
var close="
";
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var oPosition = theBox.scrollTop;
var oHeight = theBox.scrollHeight;
var text=theBox.value.substring(0,startPos);
text +=open+theBox.value.substring(startPos, endPos)+close;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text;
theBox.selectionStart = startPos;
theBox.selectionEnd = endPos + open.length + close.length;
var nHeight = theBox.scrollHeight - oHeight;
theBox.scrollTop = oPosition + nHeight;

Я конечно понимаю что эти два кода отличаются тем что там есть обработчик мыши, но вот как исправить что бы не требовалось на кнопку нажимать дважды... видимо надо что то написать в секции инициализации.

И ещё вопрос: Как создавать и обращаться к глоб. переменным?


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№175710-07-2010 06:41:29

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

Indomito пишет

Подскажите почему это
Секция Код:
...
требует двойного нажатия

Потому, что этот код составлен частью из кода, предназначенного для раздела "Код", а частью - из кода, предназначенного для раздела "Инициализация".
А в целом - непригоден ни для одного из разделов.

И ещё вопрос: Как создавать и обращаться к глоб. переменным?

Через окно:

Выделить код

Код:

window ["myvariable"] = 100;

или выполнением кода в контексте окна.
Только аккуратно - чтобы не "убить" какую-нибудь из уже существующих глобальных переменных. Может быть, добавлять к имени какой-нибудь префикс ("my", "cb")


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№175810-07-2010 10:11:07

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

Anton а так верно?

скрытый текст
/*Initialization Code*/

function lbMouse(){
var open="";
var close="
";
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var text=theBox.value.substring(0,startPos);
text +=open+theBox.value.substring(startPos, endPos)+close;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text;
};

function rbMouse(){
var open="";
var close="
";
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var text=theBox.value.substring(0,startPos);
var paste = readFromClipboard();
text +=open+paste+close;
theBox.value = text;
};

this.onclick = function(event) {
    if(event.button == 0) {
// Действие при клике ЛКМ
lbMouse();
    }
    else if(event.button == 1) {
        // Действие при клике СКМ
    }
    else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        // Действие при клике ПКМ без модификаторов
        rbMouse();
    }
};
this.oncontextmenu = function(event) {
    if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        // Блокируем контекстное меню при клике ПКМ без модификаторов
        event.preventDefault();
        event.stopPropagation();
    }
};

всё работает, но мало ли....


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№175910-07-2010 16:58:15

iDev.Pi
баг-репортёр
 
Группа: Extensions
Зарегистрирован: 31-01-2010
Сообщений: 2718
UA: Mozilla 2.0

Re: Custom Buttons

Кнопка потеряла функцию перетаскивания окна с последними найтли билдами. Пофиксите, кто-нибудь?


mzfx

Отсутствует

 

№176010-07-2010 19:29:54

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.6

Re: Custom Buttons

iDev.Pi пишет

Кнопка потеряла функцию перетаскивания окна с последними найтли билдами.

Скорее всего, сломали resource://gre/modules/WindowDraggingUtils.jsm (или как-то хитро переделали, но у меня новая версия не работает).
Так что можно временно скопировать в начало инициализации весь код из старой версии:

WindowDraggingUtils.jsm из Firefox 3.6.6

Выделить код

Код:

/* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is mozilla.org Code.
 *
 * The Initial Developer of the Original Code is
 * Markus Stange <mstange@themasta.com>.
 * Portions created by the Initial Developer are Copyright (C) 2008
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 *
 * ***** END LICENSE BLOCK ***** */

let EXPORTED_SYMBOLS = [ "WindowDraggingElement" ];

function WindowDraggingElement(elem, window) {
  this._elem = elem;
  this._window = window;
  this._elem.addEventListener("mousedown", this, false);
}

WindowDraggingElement.prototype = {
  mouseDownCheck: function(e) { return true; },
  dragTags: ["box", "hbox", "vbox", "spacer", "label", "statusbarpanel", "stack",
             "toolbaritem", "toolbarseparator", "toolbarspring", "toolbarspacer",
             "radiogroup", "deck", "scrollbox"],
  handleEvent: function(aEvent) {
    switch (aEvent.type) {
      case "mousedown":
        if (aEvent.button != 0 || !this.mouseDownCheck.call(this._elem, aEvent))
          return;

        let target = aEvent.originalTarget, parent = aEvent.originalTarget;
        while (parent != this._elem) {
          let mousethrough = parent.getAttribute("mousethrough");
          if (mousethrough == "always")
            target = parent.parentNode;
          else if (mousethrough == "never")
            break;
          parent = parent.parentNode;
        }
        while (target != this._elem) {
          if (this.dragTags.indexOf(target.localName) == -1)
            return;
          target = target.parentNode;
        }
        this._deltaX = aEvent.screenX - this._window.screenX;
        this._deltaY = aEvent.screenY - this._window.screenY;
        this._draggingWindow = true;
        this._window.addEventListener("mousemove", this, false);
        this._window.addEventListener("mouseup", this, false);
        break;
      case "mousemove":
        if (this._draggingWindow)
          this._window.moveTo(aEvent.screenX - this._deltaX, aEvent.screenY - this._deltaY);
        break;
      case "mouseup":
        this._draggingWindow = false;
        this._window.removeEventListener("mousemove", this, false);
        this._window.removeEventListener("mouseup", this, false);
        break;
    }
  }
}


и закомментировать строку с

Выделить код

Код:

Components.utils.import('resource://gre/modules/WindowDraggingUtils.jsm');

Отредактировано Infocatcher (10-07-2010 19:30:54)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№176110-07-2010 20:24:04

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

Indomito пишет

Anton а так верно?

Если работает, значит верно, не вижу ничего подозрительного : )

iDev.Pi пишет

Кнопка потеряла функцию перетаскивания окна с последними найтли билдами. Пофиксите, кто-нибудь?

Вот такой хак вроде бы помогает:

Выделить код

Код:

...
       try {
       ctrlW. _alive=true;
...

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№176211-07-2010 12:24:02

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

У меня на панели есть три кнопки: 5120270f1938.jpg
Я хочу их совместить в одну, подскажите фрагмент кода по модификации размера или какой программой это сделать, DOM вроде это не делает, но я не уверен ибо не знаю.


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№176311-07-2010 13:50:37

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife это:

скрытый текст
0a0cf36ced5dt.jpg
те Вид - Масштаб - Уменьшить|Сбросить|Увеличить

Добавлено 11-07-2010 13:53:23
okkamas_knife и ещё вопрос как модифицировать твой код Кнопка запуска внешнего приложения что бы можно было производить минимизацию Mozilla Thunderbird в трей после открытия, те ЛКМ я запускаю/ разворачиваю MT, а по ПКМ сворачиваю/закрываю в трей, те что надо поменять:
Запуск: args = args || [];
Закрытие: args = args || [" -turbo"];

Дополнение MTTP в Mozilla Thunderbird установлено.

Скриншот:

скрытый текст
2af357fe03c4t.jpg

По сути я хочу сделать следующее:
ЛКМ - запустить приложение.
СКМ  - (не знаю)
ПКМ  - закрыть это приложение.

Отредактировано Indomito (11-07-2010 13:57:51)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№176411-07-2010 14:10:18

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife

по ТВ не скажу - не пользуюсь потому не знаю.

ТВ это как частный случай

По сути я хочу сделать следующее:
ЛКМ - запустить приложение.
СКМ  - (не знаю)
ПКМ  - закрыть это приложение.

СКМ, ну не то что не знаю, просто в резерве.


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№176511-07-2010 14:26:18

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife про taskkill я естественно знаю, но тут немного другое. Если в окне ТВ нажать Х (Close), то он уходит в трей. Другие приложения просто закрываются, меня то интересует как сделать/отработать Х, ибо ТВ я не хочу совсем закрыть, тк он у меня постоянно работает.


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№176611-07-2010 15:37:20

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife спасибо за Zoom Text Zoom Text/Zoom Page Zoom Page и за участие в ТВ... буду копать )))

Да, в Zoom Page и в Zoom Text есть

Выделить код

Код:

this.style.opacity = '.65';

как я понял по коду это множитель масштабирования, правда как бы я его не менял, число шагов остаётся прежним... где я ошибаюсь?


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№176711-07-2010 16:24:28

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife Посмотрел на:

mozimage.zoom 1.5
toolkit.zoomManager.zoomValues .3,.5,.67,.8,.9,1,1.1,1.2,1.33,1.5,1.7,2,2.4,3
zoom.maxPercent 300
zoom.minPercent 30

потом прочёл в MozillaZine Knowledge Base и прочёл об Toolkit.zoomManager.zoomValues и остальных и... совсем запутался.
Где указывается число шагов?
Зачем указаны %, если уже есть значения?

Извиняюсь за глупые вопросы.

Добавлено 11-07-2010 16:25:35
А mozimage.zoom я в базе почему то не нашел ((


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№176811-07-2010 17:04:24

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife и в дополнение что бы уяснить... предположим я написал:

toolkit.zoomManager.zoomValues;.3,.5,.8,1,1.2,1.5,3
zoom.maxPercent;300
zoom.minPercent;30

как мозилла вычислит что ей брать за 100%?
те при .3,.5,.8,1,1.2,1.5,1.7,3
В сторону уменьшения 3 значения.
В сторону увеличения 4 значения.
Проверил - работает, но не будет ли глюка когда либо (различные дополнения я не рассматриваю, а я про сам движок).


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№176911-07-2010 17:31:58

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife спасибо за уточнение, я конечно понимал

zoom.maxPercent;700 7 это 700%
zoom.minPercent;10 - 0.1 это 10%

просто подумал, может быть указывается число из toolkit.zoomManager.zoomValues которое должно быть принято по дефолту, те то которое устанавливается кнопкой Zoom Text при нажатии СКМ.


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№177013-07-2010 11:16:52

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

Было произведено или моё ошибочное действие или формат ICO был "битым"/ошибочным, так что скрытый текст о якобы баге на данный момент считается ошибочным/ложным/недействительным из за отсутствия возможности протестировать другими участниками (файл ICO был удалён мною и восстановлению не подлежит) конференции.

скрытый текст
Разработчикам: случайно наткнулся на баг.
Создавал кнопку и вместо gif или png выбрал файл ico. Нажал конвертацию в base64 и опс кнопка исчезла, она исчезла не только с панели, но она пропала и из "Настройка панели инструментов" (список всех кнопок), а по выходу она пропала (тут я не уверен на 100% ибо мог проглядеть или же она "замаскировалась") из C:\Documents and Settings\%USER%\Application Data\Mozilla\Firefox\Profiles\ez242cl0.test_cusbt\custombuttons\buttonsoverlay.xul

PS Может надо было не тут или послать ЛС, но по идеи тут обсуждение, так что этот пост думаю к месту к месту.

Отредактировано Indomito (13-07-2010 14:22:55)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№177113-07-2010 12:46:25

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife ОС  Win XP SP3 файл пропал, сорри что так получилось, просто пока думал написать файл кикнул.... правда он из инета + для ico весьма подозрительных размеров 256х256х32 это то что я запомнил... могу попробовать его восстановить, но он был на системном диске... хотя... получится выложу.

PS Блин не то, попутал с png, сейчас поищу.
PPS Восстановить не удалось и что бы не вводить в заблуждение я свой пост отредактирую, так более верно  ИМХО.

Отредактировано Indomito (13-07-2010 14:32:18)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№177213-07-2010 14:24:27

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife ок, не удалил изначальный пост №2025, а просто отредактировал.


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№177313-07-2010 15:43:18

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife вопрос решил сам (скрытый текст) надо просто аккуратнее писать )))

скрытый текст
Есть код:
function lbMouse(){
var open="";
var close="
";
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var text=theBox.value.substring(0,startPos);
text +=open+theBox.value.substring(startPos, endPos)+close;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text;
};
и есть код:
function lbMouse(){
var open="";
var close="
";
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var oPosition = theBox.scrollTop;
var oHeight = theBox.scrollHeight;
var text=theBox.value.substring(0,startPos);
text +=open+theBox.value.substring(startPos, endPos)+close;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text;
theBox.selectionStart = startPos;
theBox.selectionEnd = endPos + open.length + close.length;
var nHeight = theBox.scrollHeight - oHeight;
theBox.scrollTop = oPosition + nHeight;
};

Первый код подправлен, я добивался в нём следующего (второй взят из набора готовых кнопок и не подвергался модификации):
1. Убрать выделение
2. Поставить курсор в крайнюю позицию,те [ b]выделяемый жирным текст[ /b]_

Ошибка: на некоторых форумах происходит, то ли уход из области ввода, то ли курсор ставится на первую позицию редактируемого/вводимого поста.
Вопрос где я ошибся?

PS В JS я "плавую", просто почти не писал на нём, а в основном на С++, это так к слову, а точнее ко второму вопросу, про создание не модальных List Box, которые нужны для сложно-составных BBCode.

Отредактировано Indomito (14-07-2010 16:51:03)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№177413-07-2010 20:25:12

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

okkamas_knife пишет

в переменной ip я получаю весь хтмл код странички
мне оттуда нужно вычленить IP
как это сделать проще?

Вот так:

Выделить код

Код:

ip = ip. match (/IP:.*?>([^<]*)/) [1];

работает, что касается оптимизации, не знаю, может можно и проще.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№177514-07-2010 17:56:21

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

Я извиняюсь, но подскажите, а вот такой код сработает верно? (проблемная часть выделена красным):

скрытый текст
function rbMouse(){
var open="[ b]";
var close="[ /b]";
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var oPosition = theBox.scrollTop;
var oHeight = theBox.scrollHeight;
var text=theBox.value.substring(0,startPos);
var paste = readFromClipboard();
if (paste.length == 0) { text +=open+close; }
   else                { text +=open+paste+close; }

theBox.value = text;
var nHeight = theBox.scrollHeight - oHeight;
theBox.scrollTop = oPosition + nHeight;
};


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]