Отсутствует
Я так понял можно создать кнопку сайта?У меня по какой то причине не работает дополнение Радио Рекорд.Как зоздать кнопку для этого сайта при помощи Сustom buttons?Это ссылка,я её куда только уже не вставлял,не создаётся кнопка: http://www.radiorecord.ru/player/?from=undock
Отсутствует
Jesand
Во вкладку Код.
var profileDir = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("ProfD", Components.interfaces.nsILocalFile) .path; openURL("http://www.radiorecord.ru/player/?from=undock");
Отредактировано villa7 (29-05-2015 18:48:31)
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
Sekotich
нет такой.
если нужно выполнить пару команд с разницей во времени используйте setTimeout
№9 - пример
Спасибо! А подскажите пожалуйста еще, есть кнопка, открывающая произвольную внутреннюю ссылку на активной вкладке
uri = null; } return uri; } var doc = gBrowser. contentDocument; var cdurl = makeURL (doc. location. href); cdurl. ref = ""; var links = doc. links; var inlinks = []; var curl; for (var i = 0; i < links. length; i++) { curl = makeURL (links [i]. href); if (curl && (curl. host == cdurl. host)) inlinks. push (links [i]. href); } if (inlinks. length != 0) { var ind = Math. floor (Math. random () * inlinks. length); loadURI (inlinks [ind], makeURL (gBrowser. contentDocument. location. href)); }
Возможно ли ее переделать, чтобы это же самое действие (открытие произвольной ссылки) происходило на всех вкладках (активной и неактивных)?
Добавлено 30-05-2015 13:52:05
Sekotich пишет: Спасибо! А подскажите пожалуйста еще, есть кнопка, открывающая произвольную внутреннюю ссылку на активной вкладкеВозможно ли ее переделать, чтобы это же самое действие (открытие произвольной ссылки) происходило на всех вкладках (активной и неактивных)?Кажется такой кнопки нет и твой код открывает не произвольную внутреннюю ссылку а все у которых хост совпадает с хостом текущей страницы.
А как сделать, чтобы произвольную внутреннюю и на всех вкладках?
Отредактировано Sekotich (30-05-2015 13:52:05)
Отсутствует
А подскажите пожалуйста еще, есть кнопка, открывающая произвольную внутреннюю ссылку на активной вкладке
Возможно ли ее переделать, чтобы это же самое действие (открытие произвольной ссылки) происходило на всех вкладках (активной и неактивных)?
Это которая произвольная ссылка, уточни. И зачем тебе это?
Отредактировано bunda1 (30-05-2015 14:22:47)
Отсутствует
Sekotich пишетчтобы это же самое действие (открытие произвольной ссылки) происходило на всех вкладках (активной и неактивных)?
както так.. в новом лисе не проверял.
скрытый текстВыделить кодКод:
var tabs = gBrowser.tabs || gBrowser.tabContainer.childNodes; for (var i = 0; i < tabs.length ; i++){ var tab = tabs[i]; var lnk2go=[]; var lnks=tab.linkedBrowser.contentDocument.getElementsByTagName('a') for (var k = 0; k < lnks.length ; k++){ if (lnks[k].href.substring(0,4)=='http'){lnk2go.push(lnks[k].href)} }; if (lnk2go. length != 0){ var ind = Math. floor (Math. random () * lnk2go. length); tab.linkedBrowser.loadURI (lnk2go[ind]); } };
Спасибо, почти работает! Открывает только любые ссылки на сайте, в том числе и внешние. Возможно ли это подправить?
Добавлено 30-05-2015 17:07:50
И зачем тебе это?
Нужно изобразить нахождение на нескольких ресурсах фоновым режимом...
Добавлено 30-05-2015 17:21:57
Да и вдогонку вопрос, можно ли посылать команду эту, чтобы действие (рандомный переход по внутренней ссылки) выполнялись только для некоторых вкладок, например с 1 по 3 или с 4 по 6? Спасибо
Отредактировано Sekotich (30-05-2015 17:21:57)
Отсутствует
Спасибо, почти работает! Открывает только любые ссылки на сайте, в том числе и внешние. Возможно ли это подправить?
Да и вдогонку вопрос, можно ли посылать команду эту, чтобы действие (рандомный переход по внутренней ссылки) выполнялись только для некоторых вкладок, например с 1 по 3 или с 4 по 6? Спасибо
var tabs = gBrowser.tabs, host = gBrowser.currentURI.host, urls = []; for ( var i = 0; i < tabs.length ; i++ ) { if ( i > 2 ) break; var tab = tabs[i]; var links = tab.linkedBrowser.contentDocument.getElementsByTagName('a') for ( var k = 0; k < links.length ; k++ ) { var link = links[i]; link.host == host && urls.push(link.href); } }; if ( urls.length != 0 ) gBrowser.addTab( urls[ Math.floor(Math.random()*urls.length) ] );
Отсутствует
Спасибо! Только почему-то открывает только для активной вкладки произвольную внутреннюю, а не на всех или на 3-х...
А как нужно?
Отредактировано bunda1 (31-05-2015 11:06:54)
Отсутствует
А как нужно?
Во всех вкладках (неактивных и активной) и желательно подсказать, как чтобы действие происходило во вкладках с первой по третью или с третьей по пятую... Как-то так) Спасибо
Отсутствует
Во всех вкладках (неактивных и активной) и желательно подсказать, как чтобы действие происходило во вкладках с первой по третью или с третьей по пятую... Как-то так) Спасибо
Мой код как раз открывает произвольную внутреннюю ссылку из первых трёх вкладок, вкладки для проверки устанавливаются в строке: if ( i > 2 ) break; и вклада начинаются с 0 потому первые три вкладки до 2.
Отредактировано bunda1 (31-05-2015 17:51:33)
Отсутствует
Мой код как раз открывает произвольную внутреннюю ссылку из первых трёх вкладок, вкладки для проверки устанавливаются в строке: if ( i > 2 ) break; и вклада начинаются с 0 потому первые три вкладки до 2.
Проверьте пожалуйста у себя, у меня только открывает для активной вкладки...
Отсутствует
Sekotka
Да коде была ошибка, проверь сейчас:
var tabs = gBrowser.tabs, host = gBrowser.currentURI.host; for ( var i = 0; i < tabs.length ; i++ ) { if ( i > 2 ) break; var tab = tabs[i]; alert( tab.linkedBrowser.contentDocument.location ); var links = tab.linkedBrowser.contentDocument.getElementsByTagName('a') for ( var urls = [], k = 0; k < links.length ; k++ ) { var link = links[k]; link.host == host && urls.push(link.href); } }; if ( urls.length != 0 ) gBrowser.addTab( urls[ Math.floor(Math.random()*urls.length+1) ] );
потом удали из кода alert( tab.linkedBrowser.contentDocument.location );
Отсутствует
Да коде была ошибка, проверь сейчас
Да, тоже не работает
Теперь если сделать активной вкладкой 3-ю, тогда загружает произвольную ссылку только в ней, в других активных вкладках молчок, внутренние вообще не грузит...
Отсутствует
Да, тоже не работает
Теперь если сделать активной вкладкой 3-ю, тогда загружает произвольную ссылку только в ней, в других активных вкладках молчок, внутренние вообще не грузит...
У меня всё работает, может мы просто не понимаем друг друга.
Отсутствует
Sekotka пишетДа, тоже не работает
Теперь если сделать активной вкладкой 3-ю, тогда загружает произвольную ссылку только в ней, в других активных вкладках молчок, внутренние вообще не грузит...У меня всё работает, может мы просто не понимаем друг друга.
Допустим у меня открыто 8 вкладок. Кнопочка должна на первых 4-х (с 1 по 4) вкладках фоном переходить по рандомной внутренней ссылке. С 5 по 8-ю соответственно ничего не делать. При этом не важно, какая вкладка активная, а какая нет. Пока же кнопочка вообще почти не работает. Если активная вкладка 1, 2, 4, 5, 6 и тд. - она вообще ничего не делает, а если активная вкладка 3-я, то происходит переход (только в этой самой активной вкладке). Нужно по сути чтобы фоном происходили действия...
Отсутствует
Допустим у меня открыто 8 вкладок. Кнопочка должна на первых 4-х (с 1 по 4) вкладках фоном переходить по рандомной внутренней ссылке. С 5 по 8-ю соответственно ничего не делать. При этом не важно, какая вкладка активная, а какая нет. Пока же кнопочка вообще почти не работает. Если активная вкладка 1, 2, 4, 5, 6 и тд. - она вообще ничего не делает, а если активная вкладка 3-я, то происходит переход (только в этой самой активной вкладке). Нужно по сути чтобы фоном происходили действия...
Может попробуй так:
for ( var tabs = gBrowser.tabs, i = 0; i < tabs.length ; i++ ) { if ( i > 2 ) break; var tab = tabs[i]; var host = tab.linkedBrowser.contentDocument.domain; var links = tab.linkedBrowser.contentDocument.getElementsByTagName('a') for ( var urls = [], k = 0; k < links.length ; k++ ) { var link = links[k]; link.host == host && urls.push(link.href); } }; if ( urls.length != 0 ) gBrowser.addTab( urls[ Math.floor(Math.random()*urls.length+1) ] );
Отредактировано bunda1 (03-06-2015 13:11:11)
Отсутствует
Может попробуй так:
Опять не работает(
В варианте okkamas_knife работало как надо, только с двумя нюансами - там открывал любые ссылки с сайта (внутренние и внешние) и вот вопрос был, как изменить, чтоб действие применялось на вкладках с 1 по 3-ю.
Отсутствует
В варианте okkamas_knife работало как надо, только с двумя нюансами - там открывал любые ссылки с сайта (внутренние и внешние) и вот вопрос был, как изменить, чтоб действие применялось на вкладках с 1 по 3-ю.
Ну тогда не знаю
Отсутствует
Всем доброго времени суток.
Проблема может проста или не очень - я не знаю.
Когда то 2-года назад я написал кнопку которая запоминала текущие содержимое буфера обмена в виде стека глубиной произвольной, по умолчанию 15 для FF - она и сейчас работает.
Решил в лоб перетянуть её в Mozilla Thunderbird - не пашет... искал ошибку долго не нашёл и решил спросить тут.
JS-скрипт привожу полностью что бы избежать коллизий (кнопка на форуме опубликована).
//Автор Indomito 01.09.2014
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Блок инициализации глоб. переменных и функций
// срок существования - один сеанс браузера
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//*********Begin section descriptions of functions*********
//Функции которые вызываются из разных кнопок
//Запуск внешней программы
WindowStartProcess = function (path, args) {
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(path);
if(file.exists()) {
var process = Components.classes["@mozilla.org/process/util;1"]
.createInstance(Components.interfaces.nsIProcess);
process.init(file);
process.run(false, args, args.length);
} else custombuttons. alertBox ("Файл не найден", path);
};
//*********End section descriptions the functions*********
bbBBCodeStat=true // разрешить/включить BBCode
window.arycb_BBCodeClipboardStrings = this.clipboardStrings = []; // Массив буфера обмена
//********************************************************
//--------Общие функции для вставки BBCode----------------
//*********************************************************
//++++++++++++++++++BEGIN DEF++++++++++++++++++++++++++++++
//--------------------------------------------------------
// Функция lb_BBCodePrim
// [bbCode]выделенный[/bbCode]
// по умолчанию от ЛКМ)
lb_BBCodePrim = function (open,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;
var nHeight = theBox.scrollHeight - oHeight;
theBox.scrollTop = oPosition + nHeight;
};
//---------------------------------------------------------
// Функция mb_BBCodePrim
// Резерв
// по умолчанию от CКМ
mb_BBCodePrim = function (open,close) {};
// -------------------------------------------------------
// Функция rb_BBCodePrim
// [bbCode]параметр PASTE по умолчанию из буфер обмена[/bbCode]
// по умолчанию от ПКМ
rb_BBCodePrim = function (open,close,paste){
if (paste == undefined) { open +=close;} //буфер обмена пуст
else { open +=paste+close;}
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var selectionLen = endPos - startPos
var oPosition = theBox.scrollTop;
var oHeight = theBox.scrollHeight;
var text=theBox.value.substring(0,startPos);
var nHeight = theBox.scrollHeight - oHeight;
text +=open;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text;
theBox.selectionStart = endPos + open.length;
theBox.selectionEnd = endPos + open.length - selectionLen;
theBox.scrollTop = oPosition + nHeight;
};
// -------------------------------------------------------
// Функция fHLD_Get_ListClipboardPrim
// получить список сохранёного буфера обмена
//
fnHLD_Get_ListClipboardPrim = function (){
var cs = arycb_BBCodeClipboardStrings;
return (cs.slice(0));
};
//++++++++++++++++++END DEF+++++++++++++++++++++++++++++++++++
//Список сохранёного буфера обмена
//Не вызываем это, обработка по таймеру или по событию ЛКМ
//-----Обработчики буфера обмена
this.MAX_ENTRIES = 16; //Максимальное число записей 16
this.CHECK_INTERVAL = 1000; //Время опроса буфера 1000 миллисекунд
this.type = "menu";
this.orient = "horizontal";
this._menupopup = this.appendChild(document.createElement("menupopup"));
this._menupopup.setAttribute("oncommand", "this.parentNode.handleCommand(event.target);");
this.checkClipboard = function() {
var clipStr = readFromClipboard();
if(clipStr && this.clipboardStrings.indexOf(clipStr) == -1)
this.storeString(clipStr);
};
this.storeString = function(str) {
var cs = this.clipboardStrings;
cs.push(str);
while(cs.length > this.MAX_ENTRIES)
cs.shift();
var mi = document.createElement("menuitem");
mi.setAttribute("label", str);
this._menupopup.appendChild(mi);
while(this._menupopup.childNodes.length > this.MAX_ENTRIES)
this._menupopup.removeChild(this._menupopup.firstChild);
};
this.handleCommand = function(mi) {
var indx = Array.indexOf(mi.parentNode.childNodes, mi);
if(indx != -1)
this.insertText(this.clipboardStrings[indx]);
};
this.insertText = function(str) {
var cmd = "cmd_insertText";
var controller = document.commandDispatcher.getControllerForCommand(cmd);
if(controller && controller.isCommandEnabled(cmd)) {
controller = controller.QueryInterface(Components.interfaces.nsICommandController);
var params = Components.classes["@mozilla.org/embedcomp/command-params;1"]
.createInstance(Components.interfaces.nsICommandParams);
params.setStringValue("state_data", str);
controller.doCommandWithParams(cmd, params);
}
};
setInterval(function(button) {
button.checkClipboard();
}, this.CHECK_INTERVAL, this);
this.setAttribute("onpopupshowing", "this.checkClipboard();");]
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
/Блин забыл глянуть....сек.
Вот только одна ошибка
Метка времени: 04.06.2015 4:55:50
Ошибка: Failed to clone button-getAllNewMsg
Источник: resource://mintrayr/mintrayr.jsm
Строка: 124
но она не связана с кнопкой Стека Буфера Обмена - перепроверил.
Отредактировано Indomito (04-06-2015 05:03:32)
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует