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

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№145112-01-2010 21:28:34

zett123
Участник
 
Группа: Members
Зарегистрирован: 12-01-2010
Сообщений: 3
UA: Firefox 3.5

Re: Custom Buttons

Спасибо okkamas_knife ! Но только обе кнопки только уменьшают :| Что я сделал не так?

Отредактировано zett123 (12-01-2010 21:31:30)

Отсутствует

 

№145212-01-2010 22:21:09

zett123
Участник
 
Группа: Members
Зарегистрирован: 12-01-2010
Сообщений: 3
UA: Firefox 3.5

Re: Custom Buttons

Еще раз спасибо okkamas_knife!  А как же правильно будет увеличение??? :|

Добавлено 12-01-2010 22:39:17
Спасибо еще раз, дошло посмотреть исправление :dumb:

Отсутствует

 

№145313-01-2010 11:27:44

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.6

Re: Custom Buttons

zett123
А вещь можно и не прыгать, а нажать Ctrl и прокрутить колесо мыши ..

Отсутствует

 

№145418-01-2010 10:58:57

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630
UA: Seamonkey 1.1

Re: Custom Buttons

Случайно увидел, что в custombuttons-0.0.4.6-20100105 добавлена поддержка Симанки 2.
Только что поставил в SeaMonkey 2.0.2
В окне настроек не срабатывают кнопки OK и Cancel.
Первый раз такое вижу. :)

Отсутствует

 

№145518-01-2010 19:20:58

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

Re: Custom Buttons

vladmir пишет

В окне настроек не срабатывают кнопки OK и Cancel.

Консоль:

Ошибка: cbPrefs is undefined
Источник: chrome://custombuttons/content/prefs.xul
Строка: 1

chrome://custombuttons/content/prefs.js:

Выделить код

Код:

var cbPrefs = new custombuttonsFactory (). Prefs;

chrome://custombuttons/content/cbfactory.js:

Выделить код

Код:

function custombuttonsFactory ()
{
  var retobj = null;
  var info = Components. classes ["@mozilla.org/xre/app-info;1"]. getService (Components. interfaces. nsIXULAppInfo);
  switch (info. name)
  {
 ...
 case "SeaMonkey":
  switch (document. documentURI)
  {
   case "chrome://navigator/content/navigator.xul":
    retobj = this. CustombuttonsSTFactory;
    break;
   case "chrome://messenger/content/messenger.xul":
    retobj = this. CustombuttonsTBFactory;
    break;
   case "chrome://messenger/content/messageWindow.xul":
    retobj = this. CustombuttonsTBMWFactory;
    break;
   case "chrome://messenger/content/messengercompose/messengercompose.xul":
    retobj = this. CustombuttonsTBMCFactory;
    break;
   case "chrome://messenger/content/addressbook/addressbook.xul":
    break;
   case "chrome://chatzilla/content/chatzilla.xul":
    break;
  }
  break;
  ...
  }
  return retobj;
}

Я так понимаю, что нужно добавить default в switch(document. documentURI). Но что именно там нужно возвращать, вникать в данный момент некогда... :|

Отредактировано Infocatcher (18-01-2010 19:23:13)


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

Отсутствует

 

№145618-01-2010 20:20:25

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630
UA: Seamonkey 2.0

Re: Custom Buttons

okkamas_knife

попробуй в настройках расширения поставить галку - показывать кнопку Применить
тогда если она заработает

И как же она заработает, если окей в настройках её не применяет? :)

а вообще на всякий случай продублируй антону про баг

Так он и здесь увидит, наверное.
Infocatcher
Да мне-то не к спеху, кнопки к панели прилипают, парочка срабатывает, смотрю.

Отсутствует

 

№145718-01-2010 22:24:56

lzuluzl
Участник
 
Группа: Members
Зарегистрирован: 18-01-2010
Сообщений: 2
UA: Firefox 3.5

Re: Custom Buttons

А кто может создать кнопку "Перейти"?
в 3.5 кнопку забрали, а та что есть не всегда подходит
т.е. кнопка при нажатии на которую происходит переход по ссылке в адресной строке, либо обновление страницы если ссылка уже была загружена.

Отсутствует

 

№145819-01-2010 01:04:08

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

Re: Custom Buttons

lzuluzl пишет

А кто может создать кнопку "Перейти"?

Код для секции «инициализация»:

Выделить код

Код:

this.setAttribute(
    "onclick",
    "handleURLBarCommand" in window
        ? "handleURLBarCommand(event);" // Firefox 3.0
        : "gURLBar.handleCommand(event);" // Firefox 3.5+
);
this.tooltipText = document.getElementById("go-button").tooltipText;

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

Отсутствует

 

№145919-01-2010 03:23:42

lzuluzl
Участник
 
Группа: Members
Зарегистрирован: 18-01-2010
Сообщений: 2
UA: Firefox 3.5

Re: Custom Buttons

Infocatcher
+1

Все работает:)

Отсутствует

 

№146019-01-2010 14:40:10

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

vladmir

В окне настроек не срабатывают кнопки OK и Cancel.

Спасибо за сообщение об ошибке. Совсем забыл это протестировать.
В следующей версии исправлю.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№146121-01-2010 10:08:01

mshubin
Участник
 
Группа: Members
Зарегистрирован: 08-09-2009
Сообщений: 47
UA: Firefox 3.5

Re: Custom Buttons

Подскажите плиз. Версия ThunderBird - 2, версия кастом баттонс -0,0,4,3

Какую функцию вызвать, чтобы при нажатии на кнопку, размещенную на панели инструментов в диалоге создания письма, курсор ввода оказался в поле "Subject". Спасибо.

Отсутствует

 

№146221-01-2010 13:26:13

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630
UA: Seamonkey 2.0

Re: Custom Buttons

Anton
А ты, кстати, как-то тихой сапой добавил поддержку Симанки - надо было погромогласнее что ли. ))


Сограждане, а вот така нужда есть давно, - как бы забацать такой скриптик, чтобы он в адресной строке производил поиск и замену - преобразовывал бы адрес открытой страницы в вид, более удобный для имени файла при сохранении страницы. Сейчас я часто делаю это вручную - слэши меняю на дефисы, от com оставляю c, удаляю типичные части типа viewtopic.php, ну потом иногда дописываю что-то. То есть использую адр строку как текстовый редактор для составления имени файла. Потом копирую и вставляю в окно сохранения.
В итоге, многие страницы у меня с такими именами лежат:
livejournal.c-community-firefoxusers.htm
custombuttons.mozdev.org-drupal-content-custom-buttons.htm
mozilla.org-projects-calendar-lightning.htm

Если получится, то я додумаю ещё какие знакосочетания нужно менять или удалять, а для начала бы:

- замена / \ на -
- замена com на c
- замена .shtml на .html
- замена .phtml на .html
- удалить протоколы http:// https://  ftp://
- удалить www.
- удалить ?
- удалить %
- удалить topic.cgi
- удалить viewtopic.php

- если слэш в самом конце - то удаление его

Мне было бы полезно даже, если будет только замена слэшей на чёрточки.

Я было пытался начать букмарклет делать (точнее переделать из других) но во-первых, не получилось, во-вторых, протокол не удаляется, да ещё при настройке для закладок открывать в новой вкладке - всё равно бессмысленно - ничего не преобразуется, а только открывается новая вкладка, так может кнопарик такого типа можно сделать?

Отсутствует

 

№146321-01-2010 16:39:09

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

mshubin

Какую функцию вызвать, чтобы при нажатии на кнопку, размещенную на панели инструментов в диалоге создания письма, курсор ввода оказался в поле "Subject".

Выделить код

Код:

document. getElementById ("msgSubject"). focus ();

vladmir
Если делать замены в строку адреса то код примерно такой:

скрытый текст

Выделить код

Код:

var url = gBrowser. contentDocument. location. href;
var urlbar = document. getElementById ("urlbar");

url = url. replace (/^([^:/?#]+:\/\/)?/, "");
url = url. replace (/^www\./, "");
url = url. replace (/\//g, "-");
url = url. replace (/\\/g, "-");
url = url. replace (/\?/g, "");
url = url. replace (/%/g, "");
url = url. replace (".com", "c");
url = url. replace (".shtml", ".html");
url = url. replace (".phtml", ".html");
url = url. replace ("topic.cgi", "");
url = url. replace ("viewtopic.php", "");

urlbar. value = url;

Можно записывать результат в буфер обмена - надо заменить последнюю строку предыдущего кода на

Выделить код

Код:

custombuttonsUtils. gClipboard. write (url);

Можно даже

okkamas_knife пишет

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

выдернув и поправив пару функций из contentAreaUtils.js, код будет такой:

скрытый текст

Выделить код

Код:

/*CODE*/
function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition,
                      aContentType, aShouldBypassCache, aFilePickerTitleKey,
                      aChosenData, aReferrer, aUsePref, aCacheKey)
{
  // Note: aDocument == null when this code is used by save-link-as...
  var saveMode = GetSaveModeForContentType(aContentType);
  var isDocument = aDocument != null && saveMode != SAVEMODE_FILEONLY;
  var saveAsType = kSaveAsType_Complete;

  var file, fileURL;
  // Find the URI object for aURL and the FileName/Extension to use when saving.
  // FileName/Extension will be ignored if aChosenData supplied.
  var fileInfo = new FileInfo(aDefaultFileName);
  if (aChosenData)
    file = aChosenData.file;
  else {
    var charset = null;
    if (aDocument)
      charset = aDocument.characterSet;
    else if (aReferrer)
      charset = aReferrer.originCharset;
    initFileInfo(fileInfo, aURL, charset, aDocument,
                 aContentType, aContentDisposition);
fileInfo. fileName = fileInfo. fileBaseName = aDefaultFileName;
    var fpParams = {
      fpTitleKey: aFilePickerTitleKey,
      isDocument: isDocument,
      fileInfo: fileInfo,
      contentType: aContentType,
      saveMode: saveMode,
      saveAsType: saveAsType,
      file: file,
      fileURL: fileURL
    };

    if (!getTargetFile(fpParams))
      // If the method returned false this is because the user cancelled from
      // the save file picker dialog.
      return;

    saveAsType = fpParams.saveAsType;
    saveMode = fpParams.saveMode;
    file = fpParams.file;
    fileURL = fpParams.fileURL;
  }

  if (!fileURL)
    fileURL = makeFileURI(file);

  // XXX We depend on the following holding true in appendFiltersForContentType():
  // If we should save as a complete page, the saveAsType is kSaveAsType_Complete.
  // If we should save as text, the saveAsType is kSaveAsType_Text.
  var useSaveDocument = isDocument &&
                        (((saveMode & SAVEMODE_COMPLETE_DOM) && (saveAsType == kSaveAsType_Complete)) ||
                         ((saveMode & SAVEMODE_COMPLETE_TEXT) && (saveAsType == kSaveAsType_Text)));
  // If we're saving a document, and are saving either in complete mode or
  // as converted text, pass the document to the web browser persist component.
  // If we're just saving the HTML (second option in the list), send only the URI.
  var source = useSaveDocument ? aDocument : fileInfo.uri;
  var persistArgs = {
    source      : source,
    contentType : (!aChosenData && useSaveDocument &&
                   saveAsType == kSaveAsType_Text) ?
                  "text/plain" : null,
    target      : fileURL,
    postData    : isDocument ? getPostData(aDocument) : null,
    bypassCache : aShouldBypassCache
  };

  var persist = makeWebBrowserPersist();

  // Calculate persist flags.
  const nsIWBP = Components.interfaces.nsIWebBrowserPersist;
  const flags = nsIWBP.PERSIST_FLAGS_REPLACE_EXISTING_FILES;
  if (aShouldBypassCache)
    persist.persistFlags = flags | nsIWBP.PERSIST_FLAGS_BYPASS_CACHE;
  else
    persist.persistFlags = flags | nsIWBP.PERSIST_FLAGS_FROM_CACHE;

  // Leave it to WebBrowserPersist to discover the encoding type (or lack thereof):
  persist.persistFlags |= nsIWBP.PERSIST_FLAGS_AUTODETECT_APPLY_CONVERSION;

  // Create download and initiate it (below)
  var tr = Components.classes["@mozilla.org/transfer;1"].createInstance(Components.interfaces.nsITransfer);

  if (useSaveDocument) {
    // Saving a Document, not a URI:
    var filesFolder = null;
    if (persistArgs.contentType != "text/plain") {
      // Create the local directory into which to save associated files.
      filesFolder = file.clone();

      var nameWithoutExtension = getFileBaseName(filesFolder.leafName);
      filesFolder.leafName =
        document.getElementById("contentAreaCommandsBundle")
                .getFormattedString("filesFolder", [nameWithoutExtension]);
    }

    var encodingFlags = 0;
    if (persistArgs.contentType == "text/plain") {
      encodingFlags |= nsIWBP.ENCODE_FLAGS_FORMATTED;
      encodingFlags |= nsIWBP.ENCODE_FLAGS_ABSOLUTE_LINKS;
      encodingFlags |= nsIWBP.ENCODE_FLAGS_NOFRAMES_CONTENT;
    }
    else {
      encodingFlags |= nsIWBP.ENCODE_FLAGS_ENCODE_BASIC_ENTITIES;
    }

    const kWrapColumn = 80;
    tr.init((aChosenData ? aChosenData.uri : fileInfo.uri),
            persistArgs.target, "", null, null, null, persist);
    persist.progressListener = new DownloadListener(window, tr);
    persist.saveDocument(persistArgs.source, persistArgs.target, filesFolder,
                         persistArgs.contentType, encodingFlags, kWrapColumn);
  } else {
    tr.init((aChosenData ? aChosenData.uri : source),
            persistArgs.target, "", null, null, null, persist);
    persist.progressListener = new DownloadListener(window, tr);
    persist.saveURI((aChosenData ? aChosenData.uri : source),
                    aCacheKey, aReferrer, persistArgs.postData, null,
                    persistArgs.target);
  }
}

function saveDocument(aDocument, aDefaultFileName)
{
  if (!aDocument)
    throw "Must have a document when calling saveDocument";

  // We want to use cached data because the document is currently visible.
  var ifreq =
      aDocument.defaultView
               .QueryInterface(Components.interfaces.nsIInterfaceRequestor);
  var contentDisposition = null;
  try {
    contentDisposition =
      ifreq.getInterface(Components.interfaces.nsIDOMWindowUtils)
           .getDocumentMetadata("content-disposition");
  } catch (ex) {
    // Failure to get a content-disposition is ok
  }

  var cacheKey = null;
  try {
    cacheKey = ifreq.getInterface(Components.interfaces.nsIWebNavigation)
                    .QueryInterface(Components.interfaces.nsIWebPageDescriptor)
                    .currentDescriptor
                    .QueryInterface(Components.interfaces.nsISHEntry).cacheKey;
  } catch (ex) {
    // We might not find it in the cache. Oh, well.
  }

  internalSave(aDocument.location.href, aDocument, aDefaultFileName, contentDisposition,
               aDocument.contentType, false, null, null,
               aDocument.referrer ? makeURI(aDocument.referrer) : null,
               true, cacheKey);
}

var url = gBrowser. contentDocument. location. href;
var urlbar = document. getElementById ("urlbar");

url = url. replace (/^([^:/?#]+:\/\/)?/, "");
url = url. replace (/^www\./, "");
url = url. replace (/\//g, "-");
url = url. replace (/\\/g, "-");
url = url. replace (/\?/g, "");
url = url. replace (/%/g, "");
url = url. replace (".com", "c");
url = url. replace (".shtml", ".html");
url = url. replace (".phtml", ".html");
url = url. replace ("topic.cgi", "");
url = url. replace ("viewtopic.php", "");

saveDocument (window.content.document, url);

okkamas_knife
Тут немного другой случай, п. п. 2, 3 не будут работать: кнопка рус-лат заменяет только одиночные символы, а кнопка экспорта использует более простой алгоритм сохранения по сравнению с тем, который использует браузер.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№146421-01-2010 17:57:10

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

okkamas_knife
Как-то так:

Выделить код

Код:

gBrowser. tabContainer. addEventListener
(
    "TabOpen",
    function (event)
    {
        var tabpos = gBrowser. mCurrentTab. _tPos + 1;
        gBrowser. moveTabTo (event. target, tabpos);
    },
    false
);

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№146522-01-2010 02:16:56

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

Re: Custom Buttons

okkamas_knife пишет

замену open tabs relative

К слову, в Firefox 3.6 это browser.tabs.insertRelatedAfterCurrent в about:config.


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

Отсутствует

 

№146623-01-2010 11:07:56

luitzen
Участник
 
Группа: Members
Зарегистрирован: 19-07-2008
Сообщений: 791
UA: Firefox 3.6

Re: Custom Buttons

:offtopic:

okkamas_knife пишет

скрытый текст
текста еще интересно можно ли както заставить поиск в адресной строке искать также как работает фильтр в управлении закладками? просто набираю например часть названия в фильтре он показывает сайт который есть в закладках а вот если тоже самое набираю в адресной строке он выдаёт не все результаты точнее какието выдаёт а какието нет..вот форум открывается у меня и по forum и по Форум в адрсной строке.. а когда набираю какой нибудь другой сайт из избранного например набираю hdd  он вообще ничего не выдаёт хотя в закладках этих сайтов куча и с hdd в адресе и в названии и если набрать hdd в управлении закладками то результатов поиска полно. потому и интересно можноли какими либо средствами юзерхром,СВ,параметром в эбаут конфиг заставить его искать всё или вывести ту строку поиска в тулбар?

скрытый текст
То есть вам нужно, чтобы у закладок был больший приоритет в очереди?
Попробуйте увеличить значение параметра places.frecency.bookmarkVisitBonus.
Но мгновенного эффекта это не даст.

okkamas_knife в следующем сообщении пишет

а вообще какое там максимальное значение?

Не знаю :). Думаю, 32-битное знаковое целое полностью в вашем распоряжении. Но нужно ещё, чтобы сама подсчитываемая frecency в него же укладывалась. У places.frecency.typedVisitBonus по умолчанию стоит 2000.

Отредактировано luitzen (23-01-2010 20:20:01)

Отсутствует

 

№146723-01-2010 22:55:46

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630
UA: Seamonkey 2.0

Re: Custom Buttons

О! Я наконец въехал в партизанскую терминологию, придуманную для того, чтобы отпугнуть ленивого юзера, засунул клочки кода в нужные дырки и "Преобразование из латиницы в кириллицу и наоборот" таки зафурычило.))
Это полезная штука сама по себе.
Так, а транслитерации разве не сделали? Вроде уж логично в параллель.

okkamas_knife

можешь эту кнопку поправить  там в коде всё видно тебе только поменять замены на нужные и убрать лишнее

Просто знаки поменять между кавычками - эт я могу, ага.)) Поэкспериментировал слегка, да, там по одному знаку меняется только.

можно сделать чтоб эта строка сразу в буфер обмена копировалась

Нет, это не надо, кнопка не сможет все варианты охватить и всё равно будет ненужная часть оставаться временами и ещё я туда дописываю что-то или копипащу слова со страницы, мне заготовку только надо сделать для ускорения.

Anton

Если делать замены в строку адреса то код примерно такой

Вот, спасибо, это то, что нужно как раз. :) Уже ещё начал добавлять кусочки, есть некоторые частные случаи, скажем страницы с этого форума у меня идут как
mozilla-russia-ещё что-то
для руборда аналогично и др.

Можно записывать результат в буфер обмена

Понятно, мне пока не нужно.

диалог сохранения

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

Так, только ещё бы добавить в код кнопки удаление слэша, когда он - последний знак в адресе.
И ещё, если редактируешь а адр строке вручную, мышкой, то, при переключениях на др табы, изменённое остаётся в том виде, как оставишь, а с кнопкой после переключения восстанавливается на реальный адрес. Ну так тоже нормально, но привычнее было бы, чтобы уже не менялось - можно так сделать?

okkamas_knife

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

По какой такой идее? :)
Файрфокс осознанно упрощен по сравнению с Мозиллой и Симанки, чтобы был более привлекательным для начинающих, им всякие там настройки вообще чужды, свойства какие-то, положения...

Отсутствует

 

№146825-01-2010 11:38:28

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

Re: Custom Buttons

Глубокоуважаемый Jarichek делал мне суперкнопочку для удобного использования премиума на сайте letitbit.net
Она состоит из двух разделов:

1. Код.  <По нажатии на кнопку в поле ввода вставляется нужный текст и нажимается клавиша Enter (если вдруг не сработает инициализация)>

скрытый текст

Выделить код

Код:

/*CODE*/
var theBox = document.commandDispatcher.focusedElement;
if(!theBox) return;
var ptext = "MY PASSWORD";
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var text = theBox.value.substring(0, startPos);
text += ptext;
text += theBox.value.substring(endPos, theBox.value.length);
theBox.value = text; 

/*Дополнительное нажатие кнопки Enter*/
var evt = document.createEvent("KeyboardEvent");
evt.initKeyEvent("keypress", true, true, null, false, false, false, false, 0x0E, null);
theBox.dispatchEvent(evt);

2. Инициализация.  <Автоматически отслеживается присутствие на letitbit и в поле ввода пароля вставляется нужный текст>

скрытый текст

Выделить код

Код:

/*Initialization Code*/
var myExtension = {
    init: function () {
        var appcontent = document.getElementById("appcontent");
        if (appcontent) appcontent.addEventListener("DOMContentLoaded", myExtension.onPageLoad, true);
    },
 
    onPageLoad: function (aEvent) {
        var doc = aEvent.originalTarget;
        if (doc.location.href.search("letitbit.net") > -1) {
            var doc = new XPCNativeWrapper(gBrowser.contentDocument).wrappedJSObject;
            var frm = doc.getElementById("dvisms");
            var inoFrm = frm.childNodes[3].lastChild.pass;
            inoFrm.value = "MY PASSWORD";
            inoFrm.focus();
            var evt = document.createEvent("KeyboardEvent");
            evt.initKeyEvent("keypress", true, true, null, false, false, false, false, 0x0E, null);
            inoFrm.dispatchEvent(evt);
        }
    }
}
 
window.addEventListener("load", function () {
    myExtension.init();
},
false);

Так вот некоторое время назад, сайт что-то поменял в дизайне и поэтому теперь раздел "Инициализации" не выполняется!
Вот скриншот куда надо вставлять пароль:
2aa63dbc9e20t.jpg

Самого Jarichek'а что-то давненько не видно...
Люди, пожалуйста помогите восстановить работоспособность кода инициализации!

Отсутствует

 

№146925-01-2010 15:43:32

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

vladmir

Так, только ещё бы добавить в код кнопки удаление слэша, когда он - последний знак в адресе.
И ещё, если редактируешь а адр строке вручную, мышкой, то, при переключениях на др табы, изменённое остаётся в том виде, как оставишь, а с кнопкой после переключения восстанавливается на реальный адрес. Ну так тоже нормально, но привычнее было бы, чтобы уже не менялось - можно так сделать?

Примерно так:

скрытый текст

Выделить код

Код:

var url = gBrowser. contentDocument. location. href;
var urlbar = document. getElementById ("urlbar");

url = url. replace (/^([^:/?#]+:\/\/)?/, "");
url = url. replace (/^www\./, "");
url = url. replace (/\//g, "-");
url = url. replace (/\\/g, "-");
url = url. replace (/\?/g, "");
url = url. replace (/%/g, "");
url = url. replace (".com", "c");
url = url. replace (".shtml", ".html");
url = url. replace (".phtml", ".html");
url = url. replace ("topic.cgi", "");
url = url. replace ("viewtopic.php", "");
url = url. replace (/-$/, "");

urlbar. value = url;
gBrowser. userTypedValue = url;

okkamas_knife

Код

Выделить код

Код:

function getFile ()
{
    var res = "";
    const nsIFilePicker = Components. interfaces. nsIFilePicker;
    var fp = Components. classes ["@mozilla.org/filepicker;1"]. createInstance (nsIFilePicker);
    fp. init (window, gNavigatorBundle. getString("openFile"), nsIFilePicker. modeOpen);
    fp. appendFilters (nsIFilePicker.filterAll);
    if (fp. show () == nsIFilePicker. returnOK)
        var res = fp. fileURL. spec;
    return res;
}

var file = getFile ();
if (!file)
    return;

this. cbFileSpec = file;
gBrowser. addTab ("http://www.freedrweb.com/aid_admin/");

Инициализация

Выделить код

Код:

var THIS = this;

var myExtension = {
    init: function () {
        var appcontent = document.getElementById("appcontent");
        if (appcontent) appcontent.addEventListener("DOMContentLoaded", myExtension.onPageLoad, true);
    },
 
    onPageLoad: function (aEvent) {
        var doc = aEvent.originalTarget;
        if (doc.location.href == "http://www.freedrweb.com/aid_admin/") {
            var doc = new XPCNativeWrapper(doc).wrappedJSObject;
            var sf = doc. forms ["drwebscanform"];
            if (THIS. cbFileSpec)
            {
                sf. file. value = THIS. cbFileSpec;
                sf. submit ();
                THIS. cbFileSpec = "";
            }
        }
    }
}
 
window.addEventListener("load", function () {
    myExtension.init();
},
true);


Должно работать в новом окне или после перезагрузки.

Inko7
Скорее всего, достаточно будет заменить

Выделить код

Код:

var inoFrm = frm.childNodes[3].lastChild.pass;

на

Выделить код

Код:

var inoFrm = doc. forms [2]. pass;

в разделе "Инициализация".


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№147025-01-2010 16:27:05

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

Re: Custom Buttons

Anton
Спасибище! Действительно этого достаточно!!!  yahoo.gif

Отсутствует

 

№147125-01-2010 19:35:54

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630
UA: Seamonkey 1.1

Re: Custom Buttons

Anton
Спасибо, всё работает.

Отсутствует

 

№147227-01-2010 22:48:08

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

Re: Custom Buttons

Может, пригодится кому.
Показать список исключений cookies:

Выделить код

Код:

// chrome://browser/content/preferences/privacy.js
// gPrivacyPane.showCookieExceptions()
var bundle = Components.classes["@mozilla.org/intl/stringbundle;1"]
    .getService(Components.interfaces.nsIStringBundleService)
    .createBundle("chrome://browser/locale/preferences/preferences.properties");
var host = "";
if(["view-source:", "about:", "chrome:", "resource:", "javascript:", "data:"].indexOf(content.location.protocol) == -1)
    try { host = content.location.host; }
    catch(e) {}
var params = { blockVisible   : true,
               sessionVisible : true,
               allowVisible   : true,
               prefilledHost  : host,
               permissionType : "cookie",
               windowTitle    : bundle.GetStringFromName("cookiepermissionstitle"),
               introText      : bundle.GetStringFromName("cookiepermissionstext") };
var win = Components.classes["@mozilla.org/appshell/window-mediator;1"]
    .getService(Components.interfaces.nsIWindowMediator)
    .getMostRecentWindow("Browser:Permissions");
if(win)
    win.focus();
else
    window.openDialog("chrome://browser/content/preferences/permissions.xul", "_blank", "", params);

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

Отсутствует

 

№147308-02-2010 10:07:22

mshubin
Участник
 
Группа: Members
Зарегистрирован: 08-09-2009
Сообщений: 47
UA: Firefox 3.5

Re: Custom Buttons

Антон, у Вас есть сборка Custom Buttons, которая:
1. Поддерживает ThunderBird 3.0
2. Исправлена ошибка с невозможностью работать с кнопкой в диалоге составления письма (которая не проявляется в 0.4.4.3 но проявляется в 0.4.4.4) 0.4.4.3 поддерживает версию TB 3,0?

Отсутствует

 

№147408-02-2010 17:12:05

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

mshubin
Custom Buttons 0.0.4.6
Загрузить можно здесь: https://addons.mozilla.org/ru/firefox/addon/2707
или здесь: http://custombuttons.mozdev.org/installation.html


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№147512-02-2010 00:38:41

businka
Участник
 
Группа: Members
Зарегистрирован: 12-02-2010
Сообщений: 4
UA: Firefox 3.6

Re: Custom Buttons

Подскажите, может есть такая кнопочка при нажатии на которую выделялись каким-то цветом искомые слова? как в спутнике mail.ru есть такая
Заранее спасибо!

Отсутствует

 

Board footer

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