Помогите кто может. Нужно чтобы при добавление закладки через звёздочку она помещалась в начало списка.
Есть дополнение Add Bookmark Here2
Там можно это задать в настройках
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Господа, вопрос может и пустяковый, но я не знаю как.
Вот допустим на этой странице с помощью FireGestures я делаю жест на пермалинке или как он там называется - в правой части любого поста. При этом выполняется нужный мне код.
Как при этом получить ник автора поста? Как к нему обратиться?
Отсутствует
beggrr
Вариант
var permaLink = FireGestures.sourceNode; if (permaLink.mozMatchesSelector("span.conr > a")) alert( permaLink.parentNode.parentNode.parentNode.parentNode .querySelector('div.postleft a[href*="profile.php?id="]') .textContent );
Отсутствует
difabor пишетЕсть дополнение Add Bookmark Here2
Там можно это задать в настройкахВот как раз от него и избавляюсь, после того как оно очередной раз отвалилось на
Тогда надо кого-то спровоцировать (в хорошем смысле слова) на то, чтобы всё дополнение сымитировал - там много полезных фичей, напр. помещение выделенного фрагмента текста в Description, занесение закладки в фолдер по среднему клику и пр.
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
beggrr
Вариантскрытый текст
Спасибо, Dumby!
Отсутствует
Вроде бы все готовые кнопки просмотрел, но ничего похожего на "Не открывать пустые вкладки при закачке файлов (типа zip, pdf)" не нашёл... Неужели это никому не мешает? Хотя, наверное, это не просто сделать, ведь ссылок много не прямых, типа http://forum.xda-developers.com/attachment.php?attachmentid=2998481&d=1415081045. Разве что можно перехватывать событие загрузки...
P.S. Забыл, ещё UserJS есть - там не искал
P.P.S. Использование мною терминов не подразумевает практического владения ими - просто начитался :-)
Отредактировано Александр Колесников (09-11-2014 10:37:20)
Отсутствует
Вроде бы все готовые кнопки просмотрел, но ничего похожего на "Не открывать пустые вкладки при закачке файлов (типа zip, pdf)" не нашёл... Неужели это никому не мешает? Хотя, наверное, это не просто сделать, ведь ссылок много не прямых, типа http://forum.xda-developers.com/attachment.php?attachmentid=2998481&d=1415081045. Разве что можно перехватывать событие загрузки...
Все намного проще
Отредактировано Jerome (11-10-2017 00:59:16)
Отсутствует
Jerome Я как раз с TMP слез, т.к. юзал меньше 10% функционала. Да и там эта фишка почти не работала на самом деле. И вот это - и есть последнее из TMP, что не сделал настройками about:config и найденными, а также любезно написанными по моим просьбам CB-кнопками.
Отредактировано Александр Колесников (09-11-2014 10:41:07)
Отсутствует
Dumby
вот тут ты приводил код, для того чтобы избавиться от всплывающих запросов
Отредактировано Inko7 (10-11-2014 10:45:16)
Отсутствует
Inko7
contentType странный. Думал заменить, но не получется.
Если лиса его подхватила попробуй
//&& channel.contentType == "application/x-bittorrent" && ( channel.contentType == "application/x-bittorrent" || channel.URI.path.startsWith("/parse/d.rutor.org/download") )
Отредактировано Dumby (09-11-2014 18:09:30)
Отсутствует
но теперь почему-то не работает просто сохранение файла
А у меня без кнопок стали сохраняться torrent без запроса, несколько дней назад заметил такое. Сейчас проверил с new-rutor.org, тоже сохранился. Може на чего подкрутили?
Отсутствует
Inko7
У меня для торрентов нет SystemDefault-приложения,
поэтому проверить не могу. Может скриншот не помешал бы.
Поэтому наугад.
(() => { var obj = { delay: 500, stateSave: false, mousedownTime: 0, get ms() { delete this.ms; return this.ms = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService); }, get hs() { delete this.hs; return this.hs = Cc["@mozilla.org/uriloader/handler-service;1"].getService(Ci.nsIHandlerService); }, get info() { delete this.info; var info = Object.create(this.ms.getFromTypeAndExtension("application/x-bittorrent", "torrent")); info.alwaysAskBeforeHandling = false; return this.info = info; }, get info2() { delete this.info2; var info = Object.create(this.ms.getFromTypeAndExtension("application/octet_stream", "torrent")); info.alwaysAskBeforeHandling = false; return this.info2 = info; }, handleEvent: function(e) { if (e.detail != 1 || e.ctrlKey || e.shiftKey || e.altKey) return; this[e.type](); }, mousedown: function() { this.mousedownTime = Date.now(); this.stateSave || this.setState(true); }, mouseup: function() { if (Date.now() - this.mousedownTime < this.delay) return; this.stateSave && this.setState(); }, setState: function(save) { if (save) { this.info.preferredAction = this.info2.preferredAction = this.info.saveToDisk; this.stateSave = true; } else { this.info.preferredAction = this.info2.preferredAction = this.info.useSystemDefault; this.stateSave = false; } this.hs.store(this.info); this.hs.store(this.info2); } }; for(var type of ["mousedown", "mouseup"]) addEventListener(type, obj, false, gBrowser); addDestructor(obj.setState, obj); })();
Отсутствует
Close Download Tabs
Самое оно!
Отсутствует
Dumby
а вот этот код тоже заменить/добавить нужно?
//&& channel.contentType == "application/x-bittorrent" && ( channel.contentType == "application/x-bittorrent" || channel.URI.path.startsWith("/parse/d.rutor.org/download") )
Отредактировано Inko7 (09-11-2014 22:51:05)
Отсутствует
Inko7
Да, для того, чтобы проверить, нужно сделать именно так.
Тот код «заменить» полностью, и в этом коде тоже внести соответствующие изменения.
Отредактировано Dumby (10-11-2014 00:21:59)
Отсутствует
Dumby
Теперь всё срабатывает нормально, спасибо!
Один вопрос: а если в добавочном коде использовать такое, чтобы не привязываться только к rutor
//&& channel.contentType == "application/x-bittorrent" && ( channel.contentType == "application/x-bittorrent" || channel.contentType == "application/octet_stream") )
так тоже работает, но будет ли так правильно?
Отсутствует
Inko7
Как вобще что-либо будет правильно я, разумеется, без понятия.
Даже чуть лучше/чуть хуже — и то не уверен.
Собственно само расширение совсем не проверяет contentType,
а заменяет attachment на inline в любом доступном случае.
Так что смотри сам как тебе будет удобнее.
Отсутствует
Отсутствует
теперь мне нужно узнать сумму чисел в выделенных ячейках
Примерно так:
var sel = document.commandDispatcher.focusedWindow.getSelection().toString(); var nums = sel.split(/\s+/); var sum = 0; nums.forEach(function(num) { num = +num; if(isFinite(num)) sum += num; }); alert(sum);
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
из-за чего знаки после запятой то набегают, то возвращаются к норме?
Обычное дело при вычислениях с плавающей запятой.
В двоичном виде:
В десятичной системе:
можно это пофиксить?
Вот так проще всего:
Или можно попробовать посложнее:
function fixPrecision(n) { // Try fix "bugs" with floating point operations // E.g. 0.3/0.1 = 2.9999999999999995 return n.toPrecision(13).toString() .replace(/\.0+(e|$)/, "$1") // 1.000 and 1.000e5 => 1 .replace(/(\.\d*[^0])0+(e|$)/, "$1$2"); // 1.200 and 1.200e5 => 1.2 } alert(fixPrecision(sum));
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует