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

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№490130-09-2012 20:06:25

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 15.0

Re: Custom Buttons

Dumby пишет

положи в «Инициализацию»:  if (!TabView._window) TabView._initFrame();

Вот так сразу работает! Спасибо.

Dumby пишет

Но меня беспокоит другое - если там, в углу, уже есть группа и если она «большая»,
то новая «растолкает» и расположится, а если «маленькая», то новая её накроет. :(

та да, есть такое :|

Еще вопросик по тем же группам:
можно ли также в "один клик" закрыть текущую группу со всеми открытыми в ней вкладками?
просто хочу и открытие и закрытие поместить в одну кнопку...

Отсутствует

 

№490230-09-2012 23:41:57

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2252
UA: Firefox 10.0

Re: Custom Buttons

Inko7 пишет

можно ли также в "один клик" закрыть текущую группу со всеми открытыми в ней вкладками?

Выделить код

Код:

var group = TabView._window.GroupItems._activeGroupItem;
group.fadeAwayUndoButtonDelay = 0;
group.closeAll();

Но глюк заметил, если взять папку с закладками и «Открыть всё во вкладках»

Отсутствует

 

№490301-10-2012 10:07:55

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 15.0

Re: Custom Buttons

Dumby
Спасибо, будем довольствоваться этим!

Отсутствует

 

№490402-10-2012 20:05:51

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 16.0

Re: Custom Buttons

bunda1
Я уже спрашивал, может не заметили. Как можно в кнопке "Stf" сделать так что-бы вызов окна сохранения открывал определенную папку, а не последнюю сохраненную, приходится каждый раз выбираться по дереву папок, что-бы сохранить в нужную. Спасибо.


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№490502-10-2012 21:04:52

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

villa7
Я не знаю как сделать что-бы вызов окна сохранения открывал определенную папку, но могу сделать так что бы кнопка "Stf" сохраняла файл в нужную папку без запроса и окна сохранения.
Что скажешь.

Отсутствует

 

№490602-10-2012 22:33:18

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife
Кажется берёт, но кому от этого лучше.

Отредактировано bunda1 (02-10-2012 22:33:43)

Отсутствует

 

№490702-10-2012 23:08:10

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife пишет

ну так прописываешь туда нужное значение а потом вызываешь диалог.

И так каждый раз.

Отсутствует

 

№490802-10-2012 23:58:59

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 16.0

Re: Custom Buttons

bunda1

bunda1 пишет

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

Конечно подойдет и без диалога, и даже еще лучше, я все равно пользуюсь этой кнопкой только для сохранения в эту папку. Вдруг нужно, путь сохранения - G:\URL

Отредактировано villa7 (03-10-2012 00:10:44)


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№490903-10-2012 00:26:47

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

villa7 пишет

Конечно подойдет и без диалога, и даже еще лучше, я все равно пользуюсь этой кнопкой только для сохранения в эту папку. Вдруг нужно, путь сохранения - G:\URL

Позже сделаю, сейчас нет времени.

Отредактировано bunda1 (03-10-2012 04:51:47)

Отсутствует

 

№491003-10-2012 14:13:03

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 15.0

Re: Custom Buttons

Извиняюсь, но это снова я с вопросом по группам вкладок...

Есть код для переключения на следующую группу вкладок:

Выделить код

Код:

var tgw = document. getElementById ("tab-view"). contentWindow;
var groupItems = tgw. GroupItems;
var tabItem = groupItems. getNextGroupItemTab (true);
gBrowser. selectedTab = tabItem. tab;


Можно ли сделать такой, но для переключения на предыдущую группу?

Отсутствует

 

№491103-10-2012 15:33:00

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 15.0

Re: Custom Buttons

okkamas_knife
пробовал и getPreviousGroupItemTab и, как ты предложил, getPrevioustGroupItemTab (может описка и t внутри лишнее?) - у меня не срабатывает...
Это первое, про что я подумал :)

Отсутствует

 

№491203-10-2012 15:42:00

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

Re: Custom Buttons

Выделить код

Код:

getNextGroupItemTab = function GroupItems_getNextGroupItemTab(reverse)

Ммм?

Выделить код

Код:

var tgw = document. getElementById ("tab-view"). contentWindow;
var groupItems = tgw. GroupItems;
var tabItem = groupItems. getNextGroupItemTab (false);
gBrowser. selectedTab = tabItem. tab;

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

Отсутствует

 

№491303-10-2012 15:58:38

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 15.0

Re: Custom Buttons

Infocatcher
с первым кодом не понял - вызывает неактивность кнопки
А вот второй работает! Спасибо.
Странно, что сам вначале пробовал менять true на false и у меня не получалось, а сейчас сработало! Урррааа!

И в догонку вопросик:
как можно узнать общее количество открытых групп?
хочу как-нибудь попытаться эту цифру вывести для отображения на кнопку :P

Отредактировано Inko7 (03-10-2012 16:12:45)

Отсутствует

 

№491403-10-2012 16:24:26

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

Re: Custom Buttons

Inko7
Первый код – кусок исходника функции getNextGroupItemTab, он и не должен работать.
Это к способу поиска решения.

Можно так:
Инструменты – Веб-разработка – Простой редактор JavaScript (Shift+F4)
Окружение – Браузер

Далее мы ишем groupItems.что_то_там для перехода к предыдущей группе:

Выделить код

Код:

var tgw = document. getElementById ("tab-view"). contentWindow;
var groupItems = tgw. GroupItems;
// В данном случае простой способ не работает:
//JSON.stringify(groupItems, null, "\t");
var r = [];
for(var p in groupItems)
    r.push(p + " = " + groupItems[p]);
r.join("\n");

Ctrl+L

В результате получаем все свойства groupItems.
Там видно, что других get*GroupItemTab нет, но у getNextGroupItemTab() есть аргумент reverse.

Или то же самое из консоли ошибок, только нужно или подкорректировать, или завернуть код в

Выделить код

Код:

with(top.opener) {
    // Тут весь код
}

Добавлено 03-10-2012 16:28:14

Inko7 пишет

как можно узнать общее количество открытых групп?

Видимо,

Выделить код

Код:

var tgw = document. getElementById ("tab-view"). contentWindow;
var groupItems = tgw. GroupItems;
alert(groupItems.groupItems.length);

Отредактировано Infocatcher (03-10-2012 16:28:14)


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

Отсутствует

 

№491503-10-2012 17:12:31

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 15.0

Re: Custom Buttons

Infocatcher
Спасибище!

Отсутствует

 

№491603-10-2012 18:17:59

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

Re: Custom Buttons

okkamas_knife
Можно, даже есть какой-то UAControl.


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

Отсутствует

 

№491703-10-2012 18:36:27

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2252
UA: Firefox 10.0

Re: Custom Buttons

okkamas_knife пишет

ну так прописываешь туда нужное значение а потом вызываешь диалог.

Отличная идея, прям как regedit в нужном месте открыть...
А ещё можно твой сниппет «Сохранение файла с выбором» дополнить

как-то так
// Сохранение файла с выбором
var MyFile ="test"; //содержимое файла
var MyFilename="test.txt"; // имя файла

var nsIFilePicker = Components.interfaces.nsIFilePicker;
var fp = Components.classes["@mozilla.org/filepicker;1"]
          .createInstance(nsIFilePicker);
fp.init(window, "", fp.modeSave);
fp.defaultString = MyFilename;
fp.appendFilters(fp.filterHTML);
fp.appendFilters(fp.filterAll);
//===========================================================

var MyPath = "C:\\"; // путь сохранения
var dir = Components.classes["@mozilla.org/file/local;1"]
          .createInstance(Components.interfaces.nsILocalFile);
dir.initWithPath(MyPath);
fp.displayDirectory = dir;

//===========================================================
if(fp.show() == fp.returnCancel) return;
var stream = Components.classes['@mozilla.org/network/file-output-stream;1']
                 .createInstance(Components.interfaces.nsIFileOutputStream);
stream.init(fp.file, 0x02|0x20|0x08, 0666, 0);
stream.write(MyFile, MyFile.length);
stream.close();

Отредактировано Dumby (03-10-2012 18:40:07)

Отсутствует

 

№491804-10-2012 16:14:08

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 15.0

Re: Custom Buttons

Infocatcher
у меня уже разрыв мозга по поводу количества групп :angry:

Выделить код

Код:

var tgw = document. getElementById ("tab-view"). contentWindow;
var groupItems = tgw. GroupItems;
alert(groupItems.groupItems.length);

так, как ты написал с алертом все ок
но если вместо строки алерта ввожу такую строку

Выделить код

Код:

var panlength = groupItems.groupItems.length;

кнопка становиться неактивной, в консоли пишет:

Ошибка: TypeError: groupItems is undefined
Источник: chrome://custombuttons/content/button.js?windowId=Firefox&id=custombuttons-button17@init
Строка: 10

эт чего за напасть такая???

Отсутствует

 

№491904-10-2012 16:42:24

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

Re: Custom Buttons

Inko7
Видимо, как и тут группы еще не запустились на момент выполнения кода из инициализации.


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

Отсутствует

 

№492004-10-2012 16:51:21

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 15.0

Re: Custom Buttons

так я выполнил совет:

положи в «Инициализацию»:  if (!TabView._window) TabView._initFrame();

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

И еще, не знаю как точно объяснить, можно ли переделать обработчик жестко привязанный к номеру CB-кнопки:

Выделить код

Код:

document.getElementById("custombuttons-button18").addEventListener("DOMMouseScroll", tabscroll, false);

на такой, но без привязки, типа this

Отредактировано Inko7 (04-10-2012 17:12:10)

Отсутствует

 

№492104-10-2012 18:32:17

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Inko7 пишет

И еще, не знаю как точно объяснить, можно ли переделать обработчик жестко привязанный к номеру CB-кнопки:

Выделить код

Код:

document.getElementById("custombuttons-button18").addEventListener("DOMMouseScroll", tabscroll, false);

на такой, но без привязки, типа this

:)

Выделить код

Код:

this.addEventListener("DOMMouseScroll", function(event) {
     custombuttons.alertSlide("alert", (event.detail < 0)? "верх": "вниз" )
}, false);

Отсутствует

 

№492204-10-2012 18:35:16

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 15.0

Re: Custom Buttons

bunda1
даже не подумал, что так просто :)

Отсутствует

 

№492304-10-2012 20:36:57

LongLogin
Участник
 
Группа: Members
Зарегистрирован: 30-01-2011
Сообщений: 2083
UA: Firefox 15.0

Re: Custom Buttons

хочу порекомендовать щасливым обладателям замечательной кнопки BB: Color Menu (Firefox 3.6 +) оригинальное решение - воспользоваться кнопкой Вставка символа
kiss_10kb.1349368567.jpg

bunda1 пишет

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

да, это было бы хорошо, это усовершенствование как бы логически следует из предложенно7го функционала

Отредактировано LongLogin (04-10-2012 20:40:28)

Отсутствует

 

№492404-10-2012 20:56:39

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

LongLogin
Ok

Отсутствует

 

№492505-10-2012 02:36:03

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2252
UA: Firefox 10.0

Re: Custom Buttons

Inko7 пишет

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

У функции TabView._initFrame есть аргумент callback, попробуй использовать его.

код для размышления (запускать на «чистом», в этом контексте, профиле)

Выделить код

Код:

var Номер_Алерта = 0;
function Когда_Результат_Достигнут() { alert("Alert №" + (Номер_Алерта += 1) + ". Когда Результат Достигнут: TabView._window = " + TabView._window); }
TabView._initFrame(Когда_Результат_Достигнут); // да-да тащи окно алерта в сторону...
alert("Alert №" + (Номер_Алерта += 1) + ". Вот прямо так сразу: TabView._window = " + TabView._window);

// UPD: Да, и ещё
alert('Alert №' + (Номер_Алерта += 1) + '. (document.getElementById("tab-view").contentWindow === TabView._window) = ' +
    (document.getElementById("tab-view").contentWindow === TabView._window));

Отредактировано Dumby (05-10-2012 03:18:56)

Отсутствует

 

Board footer

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