bunda1
спасибо за "Изменить масштаб"
по поводу 02-07-2012 21:51:36 хотелось бы уточнить.
чуть не забыл, кнопка Memory Monitor в 13.0.1 в стандартной теме выглядит вот так, это так и нужно?
Отредактировано skynet281978 (06-07-2012 01:21:33)
Отсутствует
по поводу 02-07-2012 21:51:36 хотелось бы уточнить.
сегодня сделаю
чуть не забыл, кнопка Memory Monitor в 13.0.1 в стандартной теме выглядит вот так, это так и нужно?
в userChrome.css
Отсутствует
Кнопка Save
4.Capture a region on a page as PNG - сохраняет выделенную область страницы как PNG-изображение,
5. Save entire frame as PNG - сохраняет фреймы на странице как PNG-изображение,
6.Save visible portion as PNG - сохраняет видимую область страницы как PNG-изображение,
7.Save web page as PNG - сохраняет страницу как PNG-изображение(делает скриншот страницы)
можно добавить возможность открытия сохраняемого изображения во внешнем редакторе ?
Добавлено 06-07-2012 09:13:08
... в идеале конечно лучше бы код этих четырёх опций выпилить и поместить в отдельную кнопочку - скриншотер
Отредактировано Крошка Ру (06-07-2012 09:13:08)
Отсутствует
skynet281978 пишет:
чуть не забыл, кнопка Memory Monitor в 13.0.1 в стандартной теме выглядит вот так, это так и нужно?в userChrome.css
Код:#MemoryDisplay{
-moz-appearance: none !important;
border: 0px !important;}
а этот код нельзя в кнопку Memory Monitor добавить чтобы не плодить стили отдельно?
если можно то где прописать?
Отредактировано skynet281978 (06-07-2012 09:24:07)
Отсутствует
Автоматически прижимать горизонтальную полосу прокрутки к правому краю
Отсутствует
okkamas_knife, Спасибо .... помнил же что подобная кнопка была
Отсутствует
okkamas_knife, поискал по теме , но нашёл тут такую кнопку >
** * @author Anton Glazatov (c) 03.2008 * Scroll page button based on existing button idea * new implementation * * Left click - scroll slow down * Middle click - stop scroll * Right click - scroll slow up * Left double click - scroll fast down * Right double click - scroll fast up * Shift + Right click - Custom Buttons context menu */
в инициализацию:
function Scroller (oDocument) { this. oDocument = oDocument; this. oDocument. defaultView. addEventListener ("keydown", this, false); } Scroller. prototype = { oDocument: null, oTimer: null, _nSpeed: 1, _nDelay: 150, get _window () { return this. oDocument. defaultView; }, revertScroll: function () { if (this. _nSpeed > 0) this. _nSpeed = -this. _nSpeed; }, setSpeed: function (nSpeed) { this. _nSpeed = nSpeed; }, setDelay: function (nDelay) { this. stopScroll (); this. _nDelay = nDelay; }, scroll: function () { var win = this. _window; if (((this. _nSpeed < 0) && (win. pageYOffset > 0)) || ((this. _nSpeed > 0) && (win. pageYOffset < (this. oDocument. height - win. innerHeight)))) this. _window. scrollBy (0, this. _nSpeed); else this. stopScroll (); }, stopScroll: function () { if (this. oTimer) { this. oTimer. cancel (); this. oTimer = null; } }, startScroll: function () { if (this. oTimer) this. stopTimer (); this. oTimer = Components. classes ["@mozilla.org/timer;1"]. createInstance (Components. interfaces. nsITimer); this. oTimer. initWithCallback (this, this. _nDelay, 1); }, QueryInterface: function (iid) { if (iid. equals (Components. interfaces. nsISupports) || iid. equals (Components. interfaces. nsITimerCallback)) return this; return Components. results. NS_ERROR_NO_INTERFACE; }, notify: function (oTimer) { this. scroll (); }, handleEvent: function (event) { this. stopScroll (); } }; this. doScroll = function (oEvent) { var scroller = this. getScroller (); if (oEvent. button == 1) { scroller. stopScroll (); return; } if (oEvent. button == 2) scroller. revertScroll (); scroller. startScroll (); }; this. scrollPage = function (evt) { var scroller = this. getScroller (); scroller. setSpeed (1); scroller. setDelay (150); if (evt. button == 2 && evt. shiftKey) this. showPopup (this); else this. doScroll (evt); }; this. scrollPageFast = function (evt) { var scroller = this. getScroller (); scroller. setSpeed (10); scroller. setDelay (50); this. doScroll (evt); }; this. getScroller = function () { var ct = getBrowser (). selectedTab; if (!ct. cbScrollButton) ct. cbScrollButton = new Scroller (getBrowser (). contentDocument); return ct. cbScrollButton; }; this. showPopup = function (node) { var popup = document. getElementById ("custombuttons-contextpopup"); var x = node. boxObject. x; var y = node. boxObject. y + node. boxObject. height; document. popupNode = node; popup. showPopup (node, x, y, "popup", null, null); } this. setAttribute ("onclick", "this.scrollPage(event);"); this. setAttribute ("ondblclick","this.scrollPageFast(event)"); this. setAttribute ("context", ""); this. tooltipText = 'Down/Menu/Up ~ Fast Down//Fast Up';
Отсутствует
а этот код нельзя в кнопку Memory Monitor добавить чтобы не плодить стили отдельно?
если можно то где прописать?
Попробуй после:
добавыть
+ рестарт.
Отсутствует
А кто подскажет код для быстрого сохранения страницы в мхт\маф при использовании расширения MAF.
вобщем чтоб без диалога сохранения в папку по-умолчанию сохранялся файл?Выделить кодКод:
mafSaveDocument(getBrowser().selectedBrowser.contentDocument,{mafAskSaveArchive: true})это код для сохранения с запросом(тип файла берется отсюда extensions.maf.current.save.filterindex 1-mht 5-maf)
если поменять mafAskSaveArchive: true на false то ничего не происходит а в консоли вылазит ошибка.
Э-э-э, а просто с диалогом (или с выбором из меню - с диалогом/быстро, если удастся побороть быстро) можно кнопку для MAF замутить? Я тут несколько страниц назад спрашивал про подобную кнопку... интересует в основном mht... пусть даже с выставлением типа файла ручками в коде кнопки.
Отредактировано WatsonRus (06-07-2012 20:01:16)
Firefox ESR
Отсутствует
Обещают убрать поддержку конструкций вида
Выделить кодКод:
var menu = <menu xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> ... </menu>;и
Так что перестанут работать все кнопки, использующие cbu.makeXML() / custombuttonsUtils.makeXML()
Если я правильно понял, то достаточно будет переписать эту функцию в расширении и тогда кнопки не отвалятся. Хотя такое решение выглядит странно. Как я понимаю это все делается из соображения безопасности?
Или вот есть JXON, который предлагают использовать взамен. Только вот встроенную реализацию забыли сделать, так что больше копипасты!
Значит это тоже нужно будет делать средствами расширения, если мозилловцы не сделают.
Отсутствует
Если я правильно понял, то достаточно будет переписать эту функцию в расширении и тогда кнопки не отвалятся.
Нет, обещают отключить поддержку используемых синтаксических конструкций, так что переписывать как раз придется все кнопки, которые это используют.
Как я понимаю это все делается из соображения безопасности?
Раньше там было
Mozilla is not actively maintaining E4X except for security bugs. Do not use it for any new work.
Лень поддерживать, надо полагать.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Попробуй после:
Код:
ucjs_MemoryMonitor.setPrefix(ucjs_MemoryMonitor._dPrefix));
добавыть
Код:
memoryPanel.style.MozAppearance = "none";
memoryPanel.style.border = "0px";+ рестарт.
тогда пропадает разделитель между мемори и Изменить масштаб
иначе можно?
Отсутствует
Есть такая кнопка Догрузка не загруженных картинок
Возможно ли чтобы она работала из контекстного меню?
Наверно она нужна только в КМ страницы...
В инициализацию
// Новый пункт 'Догрузка не загруженных картинок' в контекстное меню страницы....................................... (function() { // Стоп, если функция уже выполнялась.......... if (document.getElementById("context-reloadAllimage")) return; // Функция перезагружает все изображение на странице.......... reloadImage = function(event){ function reloadImage(img) { if(!(img instanceof Components.interfaces.nsIImageLoadingContent) || !img.currentURI) return; urlSecurityCheck(img.currentURI.spec, gBrowser.contentPrincipal, Components.interfaces.nsIScriptSecurityManager.DISALLOW_SCRIPT); img.forceReload(); } function parseWin(win) { Array.forEach(win.frames, parseWin); Array.forEach(win.document.images, reloadImage); } parseWin(content); }; // Создаем новый пункт контекстного меню.......... var menuitem = document.createElement("menuitem"); menuitem.setAttribute("id", "context-reloadAllimage"); menuitem.setAttribute("oncommand", "reloadImage(event)"); menuitem.setAttribute("label", "Догрузка не загруженных картинок"); // Установить положение нового пункта относительно других пунктов меню var selectall = document.getElementById("context-viewbgimage"); if (!selectall) return; selectall.parentNode.insertBefore(menuitem, selectall); // Устанавливаем где показывать новый пункт меню.......... document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function(e) { if (e.target != this) return; if (gContextMenu) // когда не показывать falseItem = gContextMenu.isTextSelected || gContextMenu.onLink || gContextMenu.onImage || gContextMenu.onTextInput; gContextMenu.showItem("context-toggleGif", !falseItem); }, false); })();
//Всегда показывать "Перезагрузить изображение" в контекстном меню изображений if (location == "chrome://browser/content/browser.xul") { eval("nsContextMenu.prototype.initViewItems = " + nsContextMenu.prototype.initViewItems.toString(). replace('this.showItem("context-reloadimage", this.onImage && !this.onCompletedImage);', 'this.showItem("context-reloadimage", this.onImage);')); }
или попробуй:
// Всегда показывать "Перезагрузить изображение" в контекстном меню страницы и изображений var reloadimage = document.getElementById("context-reloadimage"); reloadimage.setAttribute("style", "display: block !important;");
При замене кода - рестарт !
Добавлено 06-07-2012 21:25:19
тогда пропадает разделитель между мемори и Изменить масштаб
иначе можно?
на
или
При замене кода - рестарт !
Отредактировано bunda1 (06-07-2012 21:26:39)
Отсутствует
bunda1
memoryPanel.style.borderBottom = "none";
или
memoryPanel.style.borderBottom = "0px";
в обоих случаях получается так
мемори съезжает чуть вниз
читал что кнопки скоро перестанут работать?
мемори монитор и Изменить размер перестанут или как?
Отредактировано skynet281978 (06-07-2012 22:43:23)
Отсутствует
skynet281978
Ну тогда хорошо .
читал что кнопки скоро перестанут работать?
мемори монитор и Изменить размер перестанут или как?
Нет.
Отредактировано bunda1 (06-07-2012 22:51:01)
Отсутствует
bunda1 работает как нужно, спасибо.
Подскажи пожалуйста кнопку для переноса app кнопки.
Чтобы выглядела как обычная кнопка CB. Т.е. можно переносить на любую панель-место и чтобы иконку я сам мог сменить.
Кнопка оставляет стандартное меню APP кнокпки (в personal menu я потом сам рассортирую как нужно)
И пустое место от APP кнопки чтобы убиралось.
Есть такая?
Отсутствует
Нет, обещают отключить поддержку используемых синтаксических конструкций, так что переписывать как раз придется все кнопки, которые это используют.
Может тогда уже проще свой xml-парсер написать?
Все равно ведь велосипед изобретать придется.
Лень поддерживать, надо полагать.
А что, этот функционал сегодня больше нигде не используется, что они его так легко готовы выкинуть?
Отсутствует
Может тогда уже проще свой xml-парсер написать?
Парсер уже есть готовый, только это XML-парсер, а не XUL-парсер. А если в XUL каждый пробел из разметки превратить в текстовый узел, то ничего работать не будет.
Плюс для многострочных данных придется писать в духе
И нету вменяемой замены для
А что, этот функционал сегодня больше нигде не используется, что они его так легко готовы выкинуть?
Вроде как, из браузеров E4X реализован только в Firefox и прочих Gecko-based.
В расширениях используется, но это вряд ли решающий фактор.
«E4X is crazyland», давайте его выпилим.
Кстати, масштаб бедствия можно оценить прямо сейчас на Nightly: Add prefs to enable/disable E4X (javascript.options.xml.content and .chrome).
Кстати, в Adblock Plus тоже используется E4X:
adblockplus-2.1.2a.3522.xpi\chrome\content\ui\sendReport.js
let reportData = <report> <adblock-plus version={Utils.addonVersion} locale={Utils.appLocale}/> ...
Добавлено 07-07-2012 03:24:29
Да и кому какое дело до 90 542 пользователей Custom Buttons?
А тот же Adblock Plus и несколько других расширений (где в основном <![CDATA[ ... ]]> для многострочных данных) достаточно просто переписать.
Там же почти нигде не требуется создавать меню исключительно на JavaScript.
Отредактировано Infocatcher (07-07-2012 03:26:55)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
okkamas_knife
http://forum.mozilla-russia.org/viewtopic.php?pid=569552#p569552
эти кнопки не соответствуют тому, что я спрашивал.
они не меняют оранжевую кнопку в обычную. и тот вариант, что там предложил bunda1 тоже не подходит.
кнопки странно себя ведут. если добавить перед ними любую другую кнопку то добавляемая кнопка скрывается или перемещается правее от неё.
получается app кнопка имеет приоритет над всеми по размещению слева на панели.
а я просил, если можно, чтобы кнопка была обычная как все CB кнопки и могла перемещаться в любое место и иконку чтобы можно было задать самому.
в общем замена дополнения Toolbar Appmenu Button
bunda1
можно в кнопке Memory Monitor зарезервировать за монитором 4 цифры в строке?
получается если например сначала 80 МБ памяти, затем 150, то иконки слева от монитора сдвигаются влево.
получается эффект дёргания иконок туда-сюда, что не симпатично
а 4 цифры... ну, вдруг кому-то повезёт и у него за гиг перевалит память а так хватит до 9999 МБ
вот код этой кнопки с учётом доработок которые я просил ранее:
/*Initialization Code*///Memory Monitor.................. var ucjs_MemoryMonitor = { _interval: 2000, //ms _maxMemory: 1500, _prefix: "MB", //B, KB, MB, GB _dPrefix: true, interval: null, init: function () { var memoryPanel = document.createElement("statusbarpanel"); memoryPanel.id = "MemoryDisplay"; memoryPanel.setAttribute("label", this.setPrefix(this._dPrefix)); var urlbar = document.getElementById("urlbar-icons"); var go = urlbar.lastChild; urlbar.insertBefore(memoryPanel, go) this.start(); this.interval = setInterval(this.start, this._interval); }, addFigure: function (str) { var num = new String(str).replace(/,/g, ""); while (num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2"))); return num; }, restart: function () { var appStartup = Components.interfaces.nsIAppStartup; Components.classes["@mozilla.org/toolkit/app-startup;1"].getService(appStartup).quit(appStartup.eRestart | appStartup.eAttemptQuit); }, getSize: function (mem, flag) { var pre = 1; switch (this._prefix) { case 'KB': pre = 1024; break; case 'MB': pre = 1024 * 1024; break; case 'GB': pre = 1024 * 1024 * 1024; break; } if (flag) return mem * pre; else return ucjs_MemoryMonitor.addFigure(Math.round(mem / pre)); }, setPrefix: function (flag) { return (flag) ? " " + this._prefix : ""; }, start: function () { try { const Cc = Components.classes; const Ci = Components.interfaces; var mgr = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); var e = mgr.enumerateReporters(); var gMemReporters = {}; while (e.hasMoreElements()) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); gMemReporters[mr.path] = mr; } var workingSet = gMemReporters["resident"].amount; var commitmentSize = gMemReporters["private"].amount; var gfxImage = gMemReporters["gfx-surface-image"].amount; var restartMemory = ucjs_MemoryMonitor.getSize(ucjs_MemoryMonitor._maxMemory, true); var memoryPanel = document.getElementById("MemoryDisplay"); memoryPanel.setAttribute("label", ucjs_MemoryMonitor.getSize(workingSet) + ucjs_MemoryMonitor.setPrefix(ucjs_MemoryMonitor._dPrefix)); memoryPanel.style.borderBottom = "0px"; memoryPanel.style.borderTop = "0px"; if (workingSet > restartMemory) { ucjs_MemoryMonitor.restart(); } } catch (e) { clearInterval(ucjs_MemoryMonitor.interval); } } } //Запускаем функцию // выходим, если функция уже выполнялась if (!document.getElementById("MemoryDisplay")) ucjs_MemoryMonitor.init();
Отредактировано skynet281978 (07-07-2012 09:54:20)
Отсутствует
Парсер уже есть готовый, только это XML-парсер, а не XUL-парсер. А если в XUL каждый пробел из разметки превратить в текстовый узел, то ничего работать не будет.
Значит придется научить его парсить xul. Только вот как он определять будет, когда нужно парсить xml, а когда xul. Мда...
Вроде как, из браузеров E4X реализован только в Firefox и прочих Gecko-based.
В расширениях используется, но это вряд ли решающий фактор.
«E4X is crazyland», давайте его выпилим.
Кстати, масштаб бедствия можно оценить прямо сейчас на Nightly: Add prefs to enable/disable E4X (javascript.options.xml.content and .chrome).
Копец. Они там чо совсем что-ли ?
В любом случае если делать костыль, он должен быть глобальным, как минимум на уровне расширения.
Отсутствует
Букмарклеты надо загружать так:
Выделить кодКод:
loadURI ("javascript:var list=document.getElementsByClassName('box');for (var i=0;i<list.length;i++){o=list[i].parentNode.childNodes[1].style;o.display=(o.display=='none')?'block':'none'};void(0);");
вот этот (Google Images from Site) >
javascript:void((function(){var%20a=location.href. replace(/^http%5C:%5C/%5C/(.*)$/,"$1");location.href="http://images.google.com/images?hl=en&q="+escape(a);})())
в такой обёртке не работает
Отсутствует
Только вот как он определять будет, когда нужно парсить xml, а когда xul.
По неймспейсу корневого узла, как же еще. А если не нужны пустые текстовые ноды между узлами, то можно и то, и другое парсить одинаково (с удалением этих нод).
Значит придется научить его парсить xul.
Уже.
Осталось только придумать, как распарсить строку из кода, как это делает E4X, а не из ресурса.
Отсутствует
вот этот (Google Images from Site) в такой обёртке не работает
А вы не пробовали букмарклет для ImageShack? Тоже ищет картинки на сайте, плюс возможность загрузить нужную картинку на ImageShack.
Делюсь кодом готовой кнопки:
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0424%u043E%u0442%u043E-%u0445%u043E%u0441%u0442%u0438%u043D%u0433%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAByUlEQVQ4jY3SP2jbQBQG8ANj8PjGmwpnTIm6CdSTDrpEtQkE/wFDhmRzTelgMpTioQRvmYwgUEIHk7Xd5MHgpWAtgXrI4KGgbs7QwUMGjRq/DiddbJmECD7QcO+n9+6Jsa1HStn0PO/C87xJp11Hp12H67pXSqmTTruOs1MbR0dv4brulZSyaYre+zWcndoYnFu4+MqxiASSBwvJg4VFJBAMCfOJQDjrY7EM8PGDQrdFkFI2mSNK2EwJ6ZKQ3urg71b+EW6+K3Q/DxDeJwjvEwy+XWJwbqHbIjBHlBCPdWE8JvOOlQbiGYft2VANBduzTYhzXA4tsDevSghHhM3PLL8I6SoDsviOAHFukgPziXgE4rEGkogjiTjwhxvgy4ku8nvH8HvHUA0F3xEaYIyxaqWMHy2O370MmmoovePY3BLmY0L/0ILvCJNwpM+YFVYrZQQNgfAd7UHrSH8tGOpuwpEedTMlbP8GrFopo39o4cahHWg9FVhHAvGMI55xU7wHFJHrg0doPdFQsrL1ypeFEYpI0BC4PiCTnTvKNpXePQEYxOE7yHZH+daeBHIkH6WI5HkWKHYS1PhOXgTkyCf79R4Q1J65g5ci/wGCBZ1O+CsrsgAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5BgetBrowser%20%28%29.%20loadURI%20%28atob%20%28%22amF2YXNjcmlwdDp0PScnO2Zvcih2YXIlMjBuPTA7bjxkb2N1bWVudC5pbWFnZXMubGVuZ3RoO24rKyl7dCs9JzxhJTIwaHJlZj0vJTIwb25jbGljaz1cJ2RvY3VtZW50LmYudXJsLnZhbHVlPWRvY3VtZW50LmltYWdlc1snK24rJ10uc3JjO2RvY3VtZW50LmYuc3VibWl0KCk7cmV0dXJuJTIwZmFsc2U7XCc+PGltZyUyMGJvcmRlcj0wJTIwc3JjPScrZG9jdW1lbnQuaW1hZ2VzW25dLnNyYysnPjwvYT4lMjAnfTtpZih0IT0nJyl7ZG9jdW1lbnQud3JpdGUoJzxodG1sPjxoZWFkPjx0aXRsZT5JbWFnZVNoYWNrJUMyJUFFPC90aXRsZT48bGluayUyMHJlbD1zdHlsZXNoZWV0JTIwaHJlZj1odHRwOi8vaW1hZ2VzaGFjay51cy9pbWcvc3R5bGUtZGVmLmNzcyUyMHR5cGU9dGV4dC9jc3M+PC9oZWFkPjxib2R5JTIwYmdjb2xvcj0jRjdGN0Y3Pjx0YWJsZSUyMGJvcmRlcj0xJTIwY2VsbHBhZGRpbmc9NSUyMGNlbGxzcGFjaW5nPTAlMjBjbGFzcz10YWJsZV9kZWNvcmF0aW9uJTIwYWxpZ249Y2VudGVyJTIwd2lkdGg9NzYwPjx0cj48dGQ+PGlmcmFtZSUyMHNyYz1odHRwOi8vaW1hZ2VzaGFjay51cy9hZHNmcmFtZTIucGhwJTIwc2Nyb2xsaW5nPW5vJTIwYWxsb3d0cmFuc3BhcmVuY3k9dHJ1ZSUyMGZyYW1lYm9yZGVyPTAlMjB3aWR0aD03MDAlMjBoZWlnaHQ9MzAwPjxhJTIwaHJlZj1odHRwOi8vd3d3LmdldGZpcmVmb3guY29tPkdldCUyMEZpcmVGb3ghPC9hPjwvaWZyYW1lPjxwPkltYWdlU2hhY2slMjBoYXMlMjBmb3VuZCUyMHRoZSUyMGZvbGxvd2luZyUyMGltYWdlcyUyMG9uJTIwdGhpcyUyMHBhZ2UuPC9wPjxwPkNsaWNrJTIwb24lMjBhbnklMjBpbWFnZSUyMHRvJTIwaG9zdCUyMGl0JTIwb24lMjBJbWFnZVNoYWNrLCUyMG9yJTIwcHJlc3MlMjB0aGUlMjBiYWNrJTIwYnV0dG9uJTIwdG8lMjByZXR1cm4lMjB0byUyMHRoZSUyMHByZXZpb3VzJTIwcGFnZS48L3A+PGZvcm0lMjBuYW1lPWYlMjBhY3Rpb249aHR0cDovL2ltYWdlc2hhY2sudXMvdHJhbnNsb2FkLnBocCUyMG1ldGhvZD1wb3N0PjxpbnB1dCUyMHR5cGU9aGlkZGVuJTIwbmFtZT11cmw+PC9mb3JtPicrdCsnPC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4nKTt2b2lkKGRvY3VtZW50LmNsb3NlKCkpfWVsc2V7YWxlcnQoJ1RoZXJlJTIwYXJlJTIwbm8lMjBpbWFnZXMlMjB0byUyMGhvc3QlMjBvbiUyMHRoaXMlMjBwYWdlLicpfQ%3D%3D%22%29%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
javascript:t='';for(var%20n=0;n<document.images.length;n++){t+='<a%20href=/%20onclick=\'document.f.url.value=document.images['+n+'].src;document.f.submit();return%20false;\'><img%20border=0%20src='+document.images[n].src+'></a>%20'};if(t!=''){document.write('<html><head><title>ImageShack%C2%AE</title><link%20rel=stylesheet%20href=http://imageshack.us/img/style-def.css%20type=text/css></head><body%20bgcolor=#F7F7F7><table%20border=1%20cellpadding=5%20cellspacing=0%20class=table_decoration%20align=center%20width=760><tr><td><iframe%20src=http://imageshack.us/adsframe2.php%20scrolling=no%20allowtransparency=true%20frameborder=0%20width=700%20height=300><a%20href=http://www.getfirefox.com>Get%20FireFox!</a></iframe><p>ImageShack%20has%20found%20the%20following%20images%20on%20this%20page.</p><p>Click%20on%20any%20image%20to%20host%20it%20on%20ImageShack,%20or%20press%20the%20back%20button%20to%20return%20to%20the%20previous%20page.</p><form%20name=f%20action=http://imageshack.us/transload.php%20method=post><input%20type=hidden%20name=url></form>'+t+'</td></tr></table></body></html>');void(document.close())}else{alert('There%20are%20no%20images%20to%20host%20on%20this%20page.')}
Отсутствует
А вы не пробовали букмарклет для ImageShack? Тоже ищет картинки на сайте, плюс возможность загрузить нужную картинку на ImageShack.
Alfina ,Сейчас попробую
Добавлено 07-07-2012 15:47:04
Спасибо, вариант интересный .... если бы ещё открывалось в новом табе и можно было поменять хостинг изображений
Отредактировано Крошка Ру (07-07-2012 15:47:04)
Отсутствует
Спасибо, вариант интересный
Пожалуйста!
если бы ещё открывалось в новом табе и можно было поменять хостинг изображений
Ну, это уже вопрос к знатокам яваскрипт.
Отсутствует