Здравствуйте, я мечтаю о такой строке поиска:
т.е. убрать выбор поисковой системы и добавить кнопки поиска "по картинкам google" и "по картам google"
только я понятия не имею как это сделать. Помогите пожалуйста...
Отсутствует
Здравствуйте, я мечтаю о такой строке поиска:
http://forum.mozilla-russia.org/uploade … ttons1.png
т.е. убрать выбор поисковой системы и добавить кнопки поиска "по картинкам google" и "по картам google"только я понятия не имею как это сделать. Помогите пожалуйста...
Отсутствует
Да, спасибо, это практически то, только в этом дополнении постоянно нужно выбирать поисковик перед вводом запроса и затем когда запрос уже введен - сам запрос пропадает из видимости и опять нужно выбирать поисковик. А если отключить пропадание запроса, тогда нельзя будет выбрать поисковик, т.е. это не совсем то
Отсутствует
Есть такой кусок кода
//find bar, показать количество совпадений(find bar,show the number of matches)...@author slimx................. (function() { //add label to findbar var status = document.getAnonymousElementByAttribute(gFindBar, 'anonid', 'match-case-status'); var sep = document.createElement("toolbarspacer"); var count = document.createElement("label"); count.hidden = true; status.parentNode.insertBefore(sep, status); status.parentNode.insertBefore(count, status);//findbar-container gFindBar.__proto__._foundMatches = count; gFindBar.__proto__._updateMatchesCount = function(aRes) { if (!this._updateMatchCountTimeout) window.clearTimeout(this._updateMatchCountTimeout); this._updateMatchCountTimeout = window.setTimeout(function(aRes, aSelf) { aSelf._updateMatchesCountWorker(aRes); }, 0, aRes, this); } gFindBar.__proto__._updateMatchesCountWorker = function(aRes) { var word = this._findField.value; if (aRes == this.nsITypeAheadFind.FIND_NOTFOUND || !word) { this._foundMatches.hidden = true; this._foundMatches.value = ""; } else { var matchesCount = this._countMatches(word).toString(); if (matchesCount != "0") { if (matchesCount == "1") this._foundMatches.value = matchesCount + ' hits'; else if (matchesCount == "-1") { var matchLimit = 100; this._foundMatches.value = " \>"+ matchLimit + ' hits'; // var key = (matchLimit > 1000) ? "Decrease" : "Increase"; } else this._foundMatches.value = matchesCount + ' hits'; this._foundMatches.hidden = false; } else { this._foundMatches.hidden = true; this._foundMatches.value = ""; } window.clearTimeout(this._updateMatchCountTimeout); } } gFindBar.__proto__._countMatches = function(aWord, aWindow) { var win = aWindow || this.browser.contentWindow; var countFound = 0; for (var i = 0, count; win.frames && i < win.frames.length; i++) { if ((count = this._countMatches(aWord, win.frames[i])) != -1) countFound += count; else return count; } var doc = win.document; if (!doc || !(doc instanceof HTMLDocument)) return countFound; var body = doc.body; var count = body.childNodes.length; var searchRange = doc.createRange(); var startPt = doc.createRange(); var endPt = doc.createRange(); searchRange.setStart(body, 0); searchRange.setEnd(body, count); startPt.setStart(body, 0); startPt.setEnd(body, 0); endPt.setStart(body, count); endPt.setEnd(body, count); var retRange = null; var finder = Components.classes["@mozilla.org/embedcomp/rangefind;1"] .createInstance() .QueryInterface(Components.interfaces.nsIFind); finder.caseSensitive = this._shouldBeCaseSensitive(aWord); var matchLimit = 100; while ((retRange = finder.Find(aWord, searchRange, startPt, endPt))) { if (this._rangeIsVisible(retRange, win)) { if (this._findMode == this.FIND_LINKS) { if (this._rangeStartsInLink(retRange)) ++ countFound; } else ++ countFound; } if (countFound == matchLimit) { countFound = -1; break; } startPt = doc.createRange(); startPt.setStart(retRange.startContainer, retRange.startOffset + 1); } return countFound; } gFindBar.__proto__._rangeIsVisible = function(aRange, aWindow) { var node = aRange.startContainer; if (node.nodeType == node.ELEMENT_NODE) { if (node.hasChildNodes) { var childNode = node.childNodes[aRange.startOffset]; if (childNode) node = childNode; } } while (node && node.nodeType != node.ELEMENT_NODE) node = node.parentNode; // There is no perfect way to check if a node is visible in JavaScript, // so use the best measures we can have if (node) { var style = aWindow.getComputedStyle(node, ""); if (style) { if (style.visibility == "hidden" || style.visibility == "collapse" || style.display == "none") return false; if (style.left != "auto" && style.width != "auto") if (style.left < 0 && style.left + style.width < 0) return false; if (style.top != "auto" && style.height != "auto") if (style.top < 0 && style.top + style.height < 0) return false; } } return true; } gFindBar.__proto__._rangeStartsInLink = function(aRange) { var isInsideLink = false; var node = aRange.startContainer; if (node.nodeType == node.ELEMENT_NODE) { if (node.hasChildNodes) { var childNode = node.childNodes[aRange.startOffset]; if (childNode) node = childNode; } } const XLink_NS = "http://www.w3.org/1999/xlink"; do { if (node instanceof HTMLAnchorElement) { isInsideLink = node.hasAttribute("href");m break; } else if (typeof node.hasAttributeNS == "function" && node.hasAttributeNS(XLink_NS, "href")) { isInsideLink = (node.getAttributeNS(XLink_NS, "type") == "simple"); break; } node = node.parentNode; } while (node); return isInsideLink; } //insert count function to original eval("gFindBar._updateCaseSensitivity=" + gFindBar._updateCaseSensitivity.toString().slice(0, -1) + "this._updateMatchesCount();}"); eval("gFindBar._updateStatusUI=" + gFindBar._updateStatusUI.toString().slice(0, -1) + "this._updateMatchesCount();}"); })();
Добавляет количество совпадений в файндбаре, но хотелось бы еще текущий номер совпадения, например "3 из 21". Что добавить?
Отсутствует
Да, спасибо, это практически то, только в этом дополнении постоянно нужно выбирать поисковик перед вводом запроса и затем когда запрос уже введен - сам запрос пропадает из видимости и опять нужно выбирать поисковик. А если отключить пропадание запроса, тогда нельзя будет выбрать поисковик, т.е. это не совсем то
Нажать на иконку поиска "по картинкам google" → Ввести запрос → Enter.
Отсутствует
rota пишетДа, спасибо, это практически то, только в этом дополнении постоянно нужно выбирать поисковик перед вводом запроса и затем когда запрос уже введен - сам запрос пропадает из видимости и опять нужно выбирать поисковик. А если отключить пропадание запроса, тогда нельзя будет выбрать поисковик, т.е. это не совсем то
Нажать на иконку поиска "по картинкам google" → Ввести запрос → Enter.
скрытый текст
Да-да, но это не совсем то. Данное расширение практически не улучшает работу, а в чем-то даже ухудшает вовсе пряча поисковой запрос
Отсутствует
Да-да, но это не совсем то. Данное расширение практически не улучшает работу, а в чем-то даже ухудшает вовсе пряча поисковой запрос
Нет, он остаётся. Т.е. можно искать сначала "по картинкам google", потом "по картам google" - один и тот же текст
Отсутствует
rota пишетДа-да, но это не совсем то. Данное расширение практически не улучшает работу, а в чем-то даже ухудшает вовсе пряча поисковой запрос
Нет, он остаётся. Т.е. можно искать сначала "по картинкам google", потом "по картам google" - один и тот же текст
Понятно, что текст остаётся, но всё же он прячется, что визуально очень неудобно
Отсутствует
много это сколько?
просто иногда проще сделать вторую кнопку или сделать подменю.
Тут дело даже не в количестве, просто было бы визуально удобней и комфортней иметь 2-3 колонки, наглядней. Что за 2 кнопка и подменю?
А сложно сделать кнопку - простейший аналог закладок, с этими улучшениями, чтоб не вмешиваться в стоковые букмарки?
Отсутствует
okkamas_knife
Ага, вот оно как, но у меня малость специфически, я добавляю закладки жестом Firegestures, не выбирая папку, а на лету. И это временные закладки, поэтому все в куче. А для закладок есть еще и [CB]Session Bookmarks от Infocatcher-а, но мне не подошло разрываться между несколькими кнопками.
Кстати, вот что пришло в голову, для упрощения кода, можно было бы сделать так: после, например, 30-ой (настраиваемо) закладки, снизу создается папка ">>>1>>>", и в нее попадают остальные закладки, после переполнения, в этой папке создается еще одна ">>>2>>>". А для искомой функциональности нескольких колонок, нужно просто, чтобы папка автоматически раскрывалась при открытии закладок. Правда, возможно, легкость реализации подобного, это очередное мое заблуждение.
Отсутствует
okkamas_knife
Ага, вот оно как, но у меня малость специфически, я добавляю закладки жестом Firegestures, не выбирая папку, а на лету. И это временные закладки, поэтому все в куче.
Можно добавлять в конкретную папку без запроса.
Отсутствует
Подскажите, как бы открыть менеджер загрузок в боковой панели?
Который?
Есть chrome://mozapps/content/downloads/downloads.xul, about:downloads и раздел в библиотеке.
А открывать вот так:
http://custombuttons.sourceforge.net/fo … f=6&t=1008
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Кстати, вот что пришло в голову, для упрощения кода, можно было бы сделать так: после, например, 30-ой (настраиваемо) закладки, снизу создается папка ">>>1>>>", и в нее попадают остальные закладки, после переполнения, в этой папке создается еще одна ">>>2>>>". А для искомой функциональности нескольких колонок, нужно просто, чтобы папка автоматически раскрывалась при открытии закладок. Правда, возможно, легкость реализации подобного, это очередное мое заблуждение.
Даа.Это интересная мысль. Самоупаковывающиеся закладки.
Пока технологии до этого дойдут можно приделать скролбар к меню закладок.Для быстрого перемещения по длинной ленте.
-------------------------
middlemouse.scrollbarPosition (Логическое) - Настройка поведения скроллбара при щелчке по нему СКМ (Средней кнопки мыши). Значения:
TRUE - При щелчке СКМ по скроллбару бегунок переходит на то место, куда был произведён щелчок.
Отсутствует
bunda1
Что-то вроде нескольких кнопок для разных папок?
Pony_Smile_Pack
Ну это как обходной путь. насчет скроллбара вчера уже думал, спасибо.
Но вот что нашел на форуме, как всегда от Крошки Ру. И к удивлению аддон работает, хотя не обновлялся уже два года. Единственный минус, что работает только с меню, а не с ярлыка закладок, может можно поправить и превратить его в Custom Button?
Отсутствует
Отсутствует
bunda1
Что-то вроде нескольких кнопок для разных папок?
Да Quick bookmarks( Firefox 3.6 + ), но можно и жестом мыши.
Сам я использую:
// Двойным левым кликом на папке закладок добавлять закладку в папку закладок ................................... addEventListener("dblclick", function(e) { var target = e.originalTarget; if ( e.button !== 0 || !target._placesNode || !PlacesUtils.nodeIsFolder( target._placesNode ) ) return; var docTitle = ( content.document.title || gBrowser.mCurrentTab.label).substr(0, 50); var folderId = PlacesUtils.getConcreteItemId( target._placesNode ); Cu.import("resource://gre/modules/PlacesUtils.jsm"); var currentURI = Services.io.newURI(content.location, null, null); let callback = { runBatched: function() { PlacesUtils.bookmarks.insertBookmark( folderId, currentURI, Ci.nsINavBookmarksService.DEFAULT_INDEX, docTitle ); } } PlacesUtils.bookmarks.runInBatchMode(callback, null); // всплывающая подсказка .... document.getElementById("identity-box").setAttribute("style", "background: yellow;"); var folderTitle = PlacesUtils.bookmarks.getItemTitle( folderId ); var favicon = ( !!gBrowser.mCurrentTab.image )? gBrowser.mCurrentTab.image: "chrome://global/skin/icons/Portrait.png"; alertsService.showAlertNotification( favicon, "Добавил в папку " + folderTitle + ":", docTitle, false, "", null, ""); }, false, window );
Отредактировано bunda1 (09-06-2013 22:31:34)
Отсутствует
vom пишетКстати, вот что пришло в голову, для упрощения кода, можно было бы сделать так: после, например, 30-ой (настраиваемо) закладки, снизу создается папка ">>>1>>>", и в нее попадают остальные закладки, после переполнения, в этой папке создается еще одна ">>>2>>>". А для искомой функциональности нескольких колонок, нужно просто, чтобы папка автоматически раскрывалась при открытии закладок. Правда, возможно, легкость реализации подобного, это очередное мое заблуждение.
Даа.Это интересная мысль. Самоупаковывающиеся закладки.Пока технологии до этого дойдут можно приделать скролбар к меню закладок.Для быстрого перемещения по длинной ленте.
стиль/* =================== scroll */
menupopup, context-menu, menupopup > menu > menupopup,#BMB_bookmarksPopup .arrowscrollbox-scrollbox{ -moz-appearance: none !important;max-height: 1000px !important;overflow-y: auto !important; }
-------------------------
middlemouse.scrollbarPosition (Логическое) - Настройка поведения скроллбара при щелчке по нему СКМ (Средней кнопки мыши). Значения: TRUE - При щелчке СКМ по скроллбару бегунок переходит на то место, куда был произведён щелчок.
Собственно так делает Opera(Presto) хто знает с какой версии. Только все вложенные - автосозданные папки имеют название "Далее" и ничего пользователю для такого поведения настраивать не надо. Длина каждой папки не превышает высоту монитора т.е. прокрутка не требуется. Фантастика, да ?
Отсутствует
Фантастика, да ?
Я имел ввиду что это здорово.
Но вот посмотрел допустим на эти несколько колонок закладок - они не очень удобны. Так и эффект от этих папок в папке неоднозначен.
Отсутствует
SendInfo пишет: Фантастика, да ?Я имел ввиду что это здорово.Но вот посмотрел допустим на эти несколько колонок закладок - они не очень удобны. Так и эффект от этих папок в папке неоднозначен.
Если смотрелись https://addons.mozilla.org/en-US/firefo … bookmarks/,http://userstyles.org/styles/81419/column-bookmarks, то это убожество не следует даже сравнивать с оперной фичей. Все умолкаю - о своем, о грустном.
Отсутствует
Есть такой кусок кода
Код:Выделить кодКод:
//find bar, показать количество совпадений(find bar,show the number of matches)...@author slimx................. (function() { //add label to findbar var status = document.getAnonymousElementByAttribute(gFindBar, 'anonid', 'match-case-status'); var sep = document.createElement("toolbarspacer"); var count = document.createElement("label"); count.hidden = true; status.parentNode.insertBefore(sep, status); status.parentNode.insertBefore(count, status);//findbar-container gFindBar.__proto__._foundMatches = count; gFindBar.__proto__._updateMatchesCount = function(aRes) { if (!this._updateMatchCountTimeout) window.clearTimeout(this._updateMatchCountTimeout); this._updateMatchCountTimeout = window.setTimeout(function(aRes, aSelf) { aSelf._updateMatchesCountWorker(aRes); }, 0, aRes, this); } gFindBar.__proto__._updateMatchesCountWorker = function(aRes) { var word = this._findField.value; if (aRes == this.nsITypeAheadFind.FIND_NOTFOUND || !word) { this._foundMatches.hidden = true; this._foundMatches.value = ""; } else { var matchesCount = this._countMatches(word).toString(); if (matchesCount != "0") { if (matchesCount == "1") this._foundMatches.value = matchesCount + ' hits'; else if (matchesCount == "-1") { var matchLimit = 100; this._foundMatches.value = " \>"+ matchLimit + ' hits'; // var key = (matchLimit > 1000) ? "Decrease" : "Increase"; } else this._foundMatches.value = matchesCount + ' hits'; this._foundMatches.hidden = false; } else { this._foundMatches.hidden = true; this._foundMatches.value = ""; } window.clearTimeout(this._updateMatchCountTimeout); } } gFindBar.__proto__._countMatches = function(aWord, aWindow) { var win = aWindow || this.browser.contentWindow; var countFound = 0; for (var i = 0, count; win.frames && i < win.frames.length; i++) { if ((count = this._countMatches(aWord, win.frames[i])) != -1) countFound += count; else return count; } var doc = win.document; if (!doc || !(doc instanceof HTMLDocument)) return countFound; var body = doc.body; var count = body.childNodes.length; var searchRange = doc.createRange(); var startPt = doc.createRange(); var endPt = doc.createRange(); searchRange.setStart(body, 0); searchRange.setEnd(body, count); startPt.setStart(body, 0); startPt.setEnd(body, 0); endPt.setStart(body, count); endPt.setEnd(body, count); var retRange = null; var finder = Components.classes["@mozilla.org/embedcomp/rangefind;1"] .createInstance() .QueryInterface(Components.interfaces.nsIFind); finder.caseSensitive = this._shouldBeCaseSensitive(aWord); var matchLimit = 100; while ((retRange = finder.Find(aWord, searchRange, startPt, endPt))) { if (this._rangeIsVisible(retRange, win)) { if (this._findMode == this.FIND_LINKS) { if (this._rangeStartsInLink(retRange)) ++ countFound; } else ++ countFound; } if (countFound == matchLimit) { countFound = -1; break; } startPt = doc.createRange(); startPt.setStart(retRange.startContainer, retRange.startOffset + 1); } return countFound; } gFindBar.__proto__._rangeIsVisible = function(aRange, aWindow) { var node = aRange.startContainer; if (node.nodeType == node.ELEMENT_NODE) { if (node.hasChildNodes) { var childNode = node.childNodes[aRange.startOffset]; if (childNode) node = childNode; } } while (node && node.nodeType != node.ELEMENT_NODE) node = node.parentNode; // There is no perfect way to check if a node is visible in JavaScript, // so use the best measures we can have if (node) { var style = aWindow.getComputedStyle(node, ""); if (style) { if (style.visibility == "hidden" || style.visibility == "collapse" || style.display == "none") return false; if (style.left != "auto" && style.width != "auto") if (style.left < 0 && style.left + style.width < 0) return false; if (style.top != "auto" && style.height != "auto") if (style.top < 0 && style.top + style.height < 0) return false; } } return true; } gFindBar.__proto__._rangeStartsInLink = function(aRange) { var isInsideLink = false; var node = aRange.startContainer; if (node.nodeType == node.ELEMENT_NODE) { if (node.hasChildNodes) { var childNode = node.childNodes[aRange.startOffset]; if (childNode) node = childNode; } } const XLink_NS = "http://www.w3.org/1999/xlink"; do { if (node instanceof HTMLAnchorElement) { isInsideLink = node.hasAttribute("href");m break; } else if (typeof node.hasAttributeNS == "function" && node.hasAttributeNS(XLink_NS, "href")) { isInsideLink = (node.getAttributeNS(XLink_NS, "type") == "simple"); break; } node = node.parentNode; } while (node); return isInsideLink; } //insert count function to original eval("gFindBar._updateCaseSensitivity=" + gFindBar._updateCaseSensitivity.toString().slice(0, -1) + "this._updateMatchesCount();}"); eval("gFindBar._updateStatusUI=" + gFindBar._updateStatusUI.toString().slice(0, -1) + "this._updateMatchesCount();}"); })();
Добавляет количество совпадений в файндбаре, но хотелось бы еще текущий номер совпадения, например "3 из 21". Что добавить?
Вот, вроде показывает
//find bar, показать количество совпадений(find bar,show the number of matches)...@author slimx................. (function() { //add label to findbar var status = document.getAnonymousElementByAttribute(gFindBar, 'anonid', 'match-case-status'); var sep = document.createElement("toolbarspacer"); var count = document.createElement("label"); count.hidden = true; status.parentNode.insertBefore(sep, status); status.parentNode.insertBefore(count, status);//findbar-container gFindBar.__proto__._foundMatches = count; gFindBar.__proto__._updateMatchesCount = function(aRes) { if (!this._updateMatchCountTimeout) window.clearTimeout(this._updateMatchCountTimeout); this._updateMatchCountTimeout = window.setTimeout(function(aRes, aSelf) { aSelf._updateMatchesCountWorker(aRes); }, 0, aRes, this); } gFindBar.__proto__._updateMatchesCountWorker = function(aRes) { var word = this._findField.value; if (aRes == this.nsITypeAheadFind.FIND_NOTFOUND || !word) { this._foundMatches.hidden = true; this._foundMatches.value = ""; } else { this.framesRanges = []; var matchesCount = this._countMatches(word).toString(); var res = null; var win = this._currentWindow; if (win) { var eEl = this._foundEditable; var sel = eEl ? eEl.QueryInterface(Ci.nsIDOMNSEditableElement).editor.selection : win.getSelection(); var range = sel.getRangeAt(0); this.framesRanges.unshift(this.framesRanges.pop()); var ranges = Array.concat.apply(null, this.framesRanges); for (var i = 0, l = ranges.length; i < l; i++) { var rng = ranges[i]; if (rng.endContainer.ownerDocument.defaultView != win) continue; var comp = ["startContainer", "endContainer", "startOffset", "endOffset"].every(function(prop) range[prop] == rng[prop]); if (comp) { res = i + 1; break; } } } if (matchesCount != "0") { if (matchesCount == "1") this._foundMatches.value = matchesCount + ' hits'; else if (matchesCount == "-1") { var matchLimit = 100; this._foundMatches.value = " \>"+ matchLimit + ' hits'; // var key = (matchLimit > 1000) ? "Decrease" : "Increase"; } else this._foundMatches.value = (res ? res + " из " : "") + matchesCount + ' hits'; this._foundMatches.hidden = false; } else { this._foundMatches.hidden = true; this._foundMatches.value = ""; } window.clearTimeout(this._updateMatchCountTimeout); } } gFindBar.__proto__._countMatches = function(aWord, aWindow) { var win = aWindow || this.browser.contentWindow; var ranges = []; var countFound = 0; for (var i = 0, count; win.frames && i < win.frames.length; i++) { if ((count = this._countMatches(aWord, win.frames[i])) != -1) countFound += count; else return count; } var doc = win.document; if (!doc || !(doc instanceof HTMLDocument)) return countFound; var body = doc.body; var count = body.childNodes.length; var searchRange = doc.createRange(); var startPt = doc.createRange(); var endPt = doc.createRange(); searchRange.setStart(body, 0); searchRange.setEnd(body, count); startPt.setStart(body, 0); startPt.setEnd(body, 0); endPt.setStart(body, count); endPt.setEnd(body, count); var retRange = null; var finder = Components.classes["@mozilla.org/embedcomp/rangefind;1"] .createInstance() .QueryInterface(Components.interfaces.nsIFind); finder.caseSensitive = this._shouldBeCaseSensitive(aWord); var matchLimit = 100; while ((retRange = finder.Find(aWord, searchRange, startPt, endPt))) { if (this._rangeIsVisible(retRange, win)) { if (this._findMode == this.FIND_LINKS) { if (this._rangeStartsInLink(retRange)) ++ countFound; } else ++ countFound; } if (countFound == matchLimit) { countFound = -1; break; } startPt = doc.createRange(); // startPt.setStart(retRange.startContainer, retRange.startOffset + 1); startPt.setStart(retRange.endContainer, retRange.endOffset); ranges.push(retRange); } if (ranges.length) this.framesRanges.push(ranges); return countFound; } gFindBar.__proto__._rangeIsVisible = function(aRange, aWindow) { var node = aRange.startContainer; if (node.nodeType == node.ELEMENT_NODE) { if (node.hasChildNodes) { var childNode = node.childNodes[aRange.startOffset]; if (childNode) node = childNode; } } while (node && node.nodeType != node.ELEMENT_NODE) node = node.parentNode; // There is no perfect way to check if a node is visible in JavaScript, // so use the best measures we can have if (node) { var style = aWindow.getComputedStyle(node, ""); if (style) { if (style.visibility == "hidden" || style.visibility == "collapse" || style.display == "none") return false; if (style.left != "auto" && style.width != "auto") if (style.left < 0 && style.left + style.width < 0) return false; if (style.top != "auto" && style.height != "auto") if (style.top < 0 && style.top + style.height < 0) return false; } } return true; } gFindBar.__proto__._rangeStartsInLink = function(aRange) { var isInsideLink = false; var node = aRange.startContainer; if (node.nodeType == node.ELEMENT_NODE) { if (node.hasChildNodes) { var childNode = node.childNodes[aRange.startOffset]; if (childNode) node = childNode; } } const XLink_NS = "http://www.w3.org/1999/xlink"; do { if (node instanceof HTMLAnchorElement) { isInsideLink = node.hasAttribute("href");m break; } else if (typeof node.hasAttributeNS == "function" && node.hasAttributeNS(XLink_NS, "href")) { isInsideLink = (node.getAttributeNS(XLink_NS, "type") == "simple"); break; } node = node.parentNode; } while (node); return isInsideLink; } //insert count function to original eval("gFindBar._updateCaseSensitivity=" + gFindBar._updateCaseSensitivity.toString().slice(0, -1) + "this._updateMatchesCount();}"); eval("gFindBar._updateStatusUI=" + gFindBar._updateStatusUI.toString().slice(0, -1) + "this._updateMatchesCount();}"); })();
Отсутствует