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

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

№765107-04-2014 13:43:55

beggrr
Участник
 
Группа: Members
Зарегистрирован: 04-02-2014
Сообщений: 128
UA: Firefox 26.0

Re: Custom Buttons

Помогите пожалуйста разобраться. Вот код

Выделить код

Код:

function mainFunction() {
  addEventListener('mousedown', function(e) {
      el = "el";
      setTimeout(function() {
         var a = "a";
      }, 800)
   }) 

   addEventListener('mouseup', function(e){
      
              // Какие-то действия
       
        function restoreTarget() {     
           var b = "b"
       }
         restoreTarget()

    })

   if (...)
      obj.o n c l i c k = restoreTarget
}

mainFunction()

Как сделать чтобы переменные а , b,  el были видны в соседних функциях и почему не выходит вызвать функцию restoreTarget() по событию onclick - она получается not defined?

Отредактировано beggrr (07-04-2014 13:47:55)

Отсутствует

 

№765207-04-2014 14:37:57

beggrr
Участник
 
Группа: Members
Зарегистрирован: 04-02-2014
Сообщений: 128
UA: Firefox 26.0

Re: Custom Buttons

А если бы я хотел обойтись без функции-оболочки mainFunction()?
Просто два листенера и после них условие  if.
Тогда эти переменные стали бы глобальными, что нежелательно?
С помощью оператора return можно их как-то сделать видимыми для соседних функций, не делая глобальными?



А почему не получается вызвать функцию  restoreTarget по событию онклик?
Мне нужно вызвать ее два раза: там где она вызывается сейчас, сразу после объявления и второй раз после условия if.

Я могу написать эту функцию два раза, и там и там, но почему вне листенера mouseup она not defined?

Отредактировано beggrr (07-04-2014 14:49:00)

Отсутствует

 

№765307-04-2014 16:01:17

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Я тут уже несколько дней питаюсь сделать индикатор загрузки страницы на каждой вкладке но не могу красиво добавить индикатор на вкладки. Добавить его легко:

Выделить код

Код:

var label = document.getAnonymousElementByAttribute( gBrowser.mCurrentTab, 'class', 'tab-text tab-label');
if ( label.lastChild ) label.removeChild( label.lastChild );

var progressmeter = document.createElement("progressmeter");
progressmeter.setAttribute("mode", "determined");
progressmeter.setAttribute("id", "progressmeterId");
progressmeter.setAttribute("value", "25");
label.appendChild( progressmeter );

// Css стиль для индикатора загрузки ....
var uri = makeURI('data:text/css,'+ encodeURIComponent('\
   progressmeter { min-width: 12px !important; min-height: 5px !important; height: 1px !important; }\
   .progress-bar { min-width: 2px !important; margin-top: -1px !important; }\
'));
const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
if ( sss.sheetRegistered(uri, sss.AGENT_SHEET) ) sss.unregisterSheet(uri, sss.AGENT_SHEET);
sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);

u561.jpg 
Но я не как не могу добавить индикатор под названием вкладки и z-index: не помогает. Помогите пожалуйста :blush:

Я тут нашёл в одном расширении файл tabprogressbar.xml добавляющий индикатор:

Выделить код

Код:

<?xml version="1.0"?>
-<bindings xmlns:xbl="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns="http://www.mozilla.org/xbl" id="tabprogressbarBindings">-<binding id="tab-label" extends="xul:hbox">-<content>-<xul:vbox flex="1" class="tab-label-inner-box"><xul:progressmeter class="tab-progress" xbl:inherits="value=tabprogressbar-progress" mode="normal"/><xul:label flex="1" class="tab-real-text" xbl:inherits="value,crop,accesskey"/></xul:vbox></content>-<implementation>-<constructor>
<![CDATA[ var node = this.parentNode; while (node.localName != 'tab') node = node.parentNode; node.addEventListener('DOMAttrModified', this.eventHandler, false); ]]>
</constructor>-<destructor>
<![CDATA[ var node = this.parentNode; while (node.localName != 'tab') node = node.parentNode; node.removeEventListener('DOMAttrModified', this.eventHandler, false); ]]>
</destructor>-<field name="eventHandler">
<![CDATA[ ({ mOwner : this, handleEvent : function(aEvent) { if (aEvent.attrName != 'label') return; this.mOwner.setAttribute('value', aEvent.target.getAttribute('label')); } }) ]]>
</field></implementation></binding></bindings>

Как перевести этот код только в javascript без xml :blush:

Отсутствует

 

№765407-04-2014 16:13:55

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

Re: Custom Buttons

beggrr пишет

Тогда эти переменные стали бы глобальными, что нежелательно?

Переменные, объявленные через var, видны только из кнопки.

beggrr пишет

А почему не получается вызвать функцию  restoreTarget по событию онклик?

http://javascript.ru/basic/functions#oblasti-vidimosti

Добавлено 07-04-2014 16:16:22

bunda1 пишет

Как перевести этот код только в javascript без xml :blush:

Добавить стиль вида

Выделить код

Код:

.tab-label {
    -moz-binding: url("data:application/xml,<тут закодировать данные через encodeURIComponent()>#tab-label");
}

Отредактировано Infocatcher (07-04-2014 16:16:22)


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

Отсутствует

 

№765507-04-2014 20:37:06

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Infocatcher пишет

Добавить стиль вида

Выделить код

Код:

.tab-label {
    -moz-binding: url("data:application/xml,<тут закодировать данные через encodeURIComponent()>#tab-label");
}

Спасибо, так добавляется но оказалось всё не так просто тот файл tabprogressbar.xml работает только с своим расширением. Буду думать как переделать его :/

Отсутствует

 

№765609-04-2014 01:24:09

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Может кому надо;

Выделить код

Код:

// Показывать индикатор загрузки на вкладках которые загружаются, от 08.04.2014. ................................
(function () { 

   // Css стиль для индикатора загрузки вкладок ....
   var uri = makeURI('data:text/css,'+ encodeURIComponent('\
      /* binding для добавления индикатора под "xul:label" каждой вкладки */\
      tabs.tabbrowser-tabs label.tab-text {\
         -moz-binding: url("data:application/xml,%3Cbindings%20id%3D%22tabprogressbarBindings%22%0A%09xmlns%3D%22http%3A%2F%2Fwww.mozilla.org%2Fxbl%22%0A%09xmlns%3Axul%3D%22http%3A%2F%2Fwww.mozilla.org%2Fkeymaster%2Fgatekeeper%2Fthere.is.only.xul%22%0A%09xmlns%3Axbl%3D%22http%3A%2F%2Fwww.mozilla.org%2Fxbl%22%3E%0A%3Cbinding%20id%3D%22tab-label%22%20extends%3D%22xul%3Ahbox%22%3E%0A%09%3Ccontent%3E%0A%09%09%3Cxul%3Avbox%20class%3D%22tab-label-inner-box%22%20flex%3D%221%22%3E%0A%09%09%09%3Cxul%3Astack%20xbl%3Ainherits%3D%22flex%22%20flex%3D%221%22%3E%0A%09%09%09%09%3Cxul%3Ahbox%20class%3D%22label-behind-box%22%20flex%3D%221%22%2F%3E%0A%09%09%09%09%3Cxul%3Avbox%20class%3D%22tab-progress-box%22%20flex%3D%221%22%3E%0A%09%09%09%09%09%3Cxul%3Aprogressmeter%0A%09%09%09%09%09%09class%3D%22tab-progress%22%0A%09%09%09%09%09%09mode%3D%22normal%22%0A%09%09%09%09%09%09xbl%3Ainherits%3D%22value%3Dtab-progress%22%2F%3E%0A%09%09%09%09%3C%2Fxul%3Avbox%3E%0A%09%09%09%09%3Cxul%3Ahbox%0A%09%09%09%09%09flex%3D%221%22%0A%09%09%09%09%09align%3D%22center%22%3E%0A%09%09%09%09%09%3Cxul%3Alabel%0A%09%09%09%09%09%09class%3D%22tab-real-text%22%0A%09%09%09%09%09%09flex%3D%221%22%0A%09%09%09%09%09%09xbl%3Ainherits%3D%22value%2Ccrop%2Caccesskey%22%2F%3E%0A%09%09%09%09%3C%2Fxul%3Ahbox%3E%0A%09%09%09%3C%2Fxul%3Astack%3E%0A%09%09%3C%2Fxul%3Avbox%3E%0A%09%3C%2Fcontent%3E%0A%3C%2Fbinding%3E%0A%3C%2Fbindings%3E#tab-label");\
      }\
      /* цвет, тень и фоновое изображение в base64 */\
      .tab-progress > .progress-remainder {\
         background-color: #5d9856 !important;\
      }\
      .tab-progress > .progress-bar {\
         box-shadow: 0 0 2px #7ffa52;\
         background: #4fca32 url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAADCAYAAABPsHHBAAADDElEQVRYhe3Y+U/TdxzHcf+GKYNSoBQoUMtValtpgdZCa60wKFBtAQFndkSzw+ye12Z2GjXOEGOMMcb4zwxK+dJSncect5tzbut9P/cD137QRDRbRb8/PH5/fd755HO8VvVMNPPC+rGZngl1/nOI/jevTahFz4Wmp9L9CPlfy0ryuNnmO9dK8vR7N//Z82Hh/NXQM6Ghd1JD7+S6Rc5JLU6vFqdXh9Oro8+ro8+rp8+rp39KT//U+kUDUy3zDAz4DLh8Blw+Iy6fkS0+I1umWxdtnW5bIrTjFtpxCybcggmPYMIjmPEIZgZnzAzObJhnYXDGwpDfwpC/gyF/B8P/si3QOc/KtoCVkYCVkYBtzqyN0dmNi8Zm7YwG54wFN81zMBZ0sP2CA/l4GasWLqWuySa6vE04vI04phqx+xqw+xqwTddhE+qxCnV0ztTR4Vdh8avYEFiLeVaJKaikPVhL24VaWi/WYLxYg+GnalouVbP+sgL9ZQW6K1Vor1ax7molmp8raL5WgfqanKZf5DReL6fhejn1N2TU3ZShulXG2ltlKG+XUnunhJo7JVTflaK4J6XqXjGVvxZT8ZsE+X0J5feLkP1eRNmDQkofFFLyx6tIHxZQ/LAAyZ9rKPprDYV/r54TEr0cXhGJRCLRf2o1klAB0lAhpSEJspAUebiUyrAMRVhOTbgSZViBKlxLfURJQ0SFOlJPc6QRbUSNLqKhJarFENXTGm2hPWrEHG3DEjPRGbNgi3Vgj1lxxDbSFdtEd3wzvfFu+uK9DMSduOL9uOMuPImtDCc8jCSGGU2MsD0xyo7k67yR3MFbyTfZmXybXcmdvJPcxXupd9mdep8PUrv5KPUhn6Q+5rPUp+xJf86+9F4OpPfzZfoLDqYP8nXmK77NfMP3me84lDnEkcxhjmaO8kP2GMezxxnPjnMie4KT2ZOcyp7idO40Z3JnOJs7y7ncOc7nzi89sESiF0H+f3KiJWKD9XzNPd+5VhKxwVqehTP42RqsgWdosNzLaLCGlt1gWR/RYNmfqMH6B9+z4Mt4YIdNAAAAAElFTkSuQmCC") no-repeat right;\
      }\
      /* где показывать, размеры */\
      label.tab-text:not([tab-progress]) .tab-progress {\
         visibility: collapse;\
      }\
      .tab-progress,\
      .tab-real-text,\
      label.tab-text > .tab-label-inner-box,\
      label.tab-text > .tab-label-inner-box > *,\
      label.tab-text > .tab-label-inner-box > stack > *,\
      label.tab-text > .tab-label-inner-box > stack > * > spacer {\
         margin: 0 !important;\
         padding: 0 !important;\
         text-indent: 0 !important;\
      }\
      .tab-progress {\
         min-width: 0 !important;\
         height: 2px !important;\
         min-height: 3px !important;\
         max-height: 3px !important;\
         -moz-appearance: none !important;\
         border: none !important;\
         outline: none !important;\
         margin: -3px 0 0 !important;\
         position: relative !important;\
      }\
      .tab-progress > .progress-bar,\
      .tab-progress > .progress-remainder {\
         -moz-appearance: none !important;\
      }\
      .tab-progress { margin: 0 0 -4px !important; }\
      .tab-progress-box { -moz-box-pack: end !important; }\
      \
      /* удалить стандартный индикатор загрузки( throbber ) */\
      .tab-throbber:not([pinned="true"]) { display: none !important; }\
      .tab-icon-image:not([pinned="true"]) { display: block !important; }\
      '));
   const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
   sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); 
   addDestructor(function() sss.unregisterSheet(uri, sss.AGENT_SHEET) );

   
   // Отслеживать прогресс загрузки всех вкладок ....
   var tabsProgressListener = {
          onProgressChange: function( browser, webProgr, request, curSelfProgr, maxSelfProgr, curProgr, maxProgr ) {
             if ( !maxProgr ) return;

             // добавлять атрибут с прогресом загрузки к 'xul:label' каждой вкладки  
             var percentage = parseInt( (curProgr * 100) / maxProgr );                           
             var tab = gBrowser._getTabForBrowser( browser );
             var label = document.getAnonymousElementByAttribute( tab, 'class', 'tab-content').querySelector(".tab-text.tab-label");
             
             percentage > 0 && percentage < 97
             ? label.setAttribute('tab-progress', percentage )
             : label.removeAttribute('tab-progress');             
          }
   };
   gBrowser.addTabsProgressListener( tabsProgressListener );
   addDestructor(function() gBrowser.removeTabsProgressListener( tabsProgressListener ) );

})();

Отсутствует

 

№765709-04-2014 08:20:56

>ORG@niZM<
Участник
 
Группа: Members
Зарегистрирован: 20-08-2013
Сообщений: 66
UA: Firefox 24.0

Re: Custom Buttons

bunda1 пишет

Может кому надо

прикольно, в коллекцию

Отсутствует

 

№765809-04-2014 13:01:39

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 20.0

Re: Custom Buttons

По-прежнему у меня капризничает кнопка  Открывать всё в новых вкладках, от 07.12.2013
Время от времени - закономерности я не обнаружил - перестают открываться по левому клику закладки из меню "Закладки" и с панели закладок.  Не реагируют совсем на левый клик.

В консоли в это время ошибка
NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMWindow.content]

Ругается на строку eval("openLinkIn = " + linkIn) в этом куске кода

Выделить код

Код:

// удалять изменения из внутренних функций Firefox ....
   addDestructor(function() {
      eval("whereToOpenLink = " + where);
      eval("PlacesUIUtils._openNodeIn = " + openNode);
      eval("openLinkIn = " + linkIn);
      eval("gURLBar.handleCommand = " + handle);

Помогает перезапуск кнопки.

Отсутствует

 

№765909-04-2014 13:19:54

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

rbfyec
Возможно глюк появляется при открытии новых окон, попробую сегодня подправить.

Ругается на строку eval("openLinkIn = " + linkIn) в этом куске кода

Консоль врёт с этим кодом, ошибка не там. Проверено.

Отредактировано bunda1 (09-04-2014 13:20:27)

Отсутствует

 

№766009-04-2014 13:22:07

through.a.haze
Участник
 
Группа: Members
Зарегистрирован: 09-04-2014
Сообщений: 4
UA: Firefox 28.0

Re: Custom Buttons

Всем доброго времени суток!

Я новичок во всем этом. Подскажите пожалуйста, почему не удается создать блок и вставить его в конец тега "body" используя этот код?

Выделить код

Код:

var placeDiv = document.getElementsByTagName('body')[0];
var newDiv = document.createElement('div');
placeDiv.appendChild(newDiv);

Из консоли фаербага запускается на "ура", а вот при нажатии на кнопку ничего не происходит:(

Отсутствует

 

№766109-04-2014 13:30:55

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 20.0

Re: Custom Buttons

through.a.haze пишет

Из консоли фаербага запускается на "ура", а вот при нажатии на кнопку ничего не происходит:(

var placeDiv = content.document.getElementsByTagName('body')[0];  ??

Отсутствует

 

№766209-04-2014 13:35:22

through.a.haze
Участник
 
Группа: Members
Зарегистрирован: 09-04-2014
Сообщений: 4
UA: Firefox 28.0

Re: Custom Buttons

rbfyec пишет

var placeDiv = content.document.getElementsByTagName('body')[0];  ??

Большое спасибо!:beer:

Отсутствует

 

№766310-04-2014 15:15:10

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 26.0

Re: Custom Buttons

Если я знаю id папки с закладками, как определить ее название?

Отсутствует

 

№766410-04-2014 15:29:06

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

hartumov пишет

Если я знаю id папки с закладками, как определить ее название?

Выделить код

Код:

var folderTitle = PlacesUtils.bookmarks.getItemTitle( folderId )

Отсутствует

 

№766511-04-2014 13:04:50

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 26.0

Re: Custom Buttons

bunda1 пишет

var folderTitle = PlacesUtils.bookmarks.getItemTitle( folderId )

Спасибо bunda1!

А как мне вот это сделать - скрипт должен открывать локальный файл, а адрес файла lalala-2014-04-11.txt. И соответственно каждый день цифры меняются.
Как указать скрипту на этот файл независимо от даты?

Отсутствует

 

№766612-04-2014 11:01:41

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 26.0

Re: Custom Buttons

Что же, г-да, выходит - никак? :(

Отсутствует

 

№766712-04-2014 11:35:09

Pony_Smile_Pack
Участник
 
Группа: Members
Зарегистрирован: 13-01-2012
Сообщений: 1144
UA: Firefox 28.0

Re: Custom Buttons

hartumov пишет

А как мне вот это сделать - скрипт должен открывать локальный файл

скрытый текст
var localFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
localFile.initWithPath("C:\\путь\\к\\файлу");
localFile.launch();

Как указать скрипту на этот файл независимо от даты?
никак?

Никак.

Отсутствует

 

№766812-04-2014 13:55:59

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 26.0

Re: Custom Buttons

Pony_Smile_Pack пишет
Выделить код

Код:

var localFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);localFile.initWithPath("C:\\путь\\к\\файлу");localFile.launch();

Это я знаю, сам неоднократно пользовался. Загвоздка в том, что каждый день меняется имя файла, а значит и вся строка "C:\\путь\\к\\файлу"

Как указать скрипту на этот файл независимо от даты?никак?

Pony_Smile_Pack пишет

Никак.

Я пока что воспользовался сниппетом Получение даты и составил имя файла по частям

Выделить код

Код:

var fileName = "lalala-" +curdate(из сниппета)+ ".txt"

Но приветствуются и другие варианты :)

Отредактировано hartumov (12-04-2014 13:57:34)

Отсутствует

 

№766912-04-2014 21:44:21

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 25.0

Re: Custom Buttons

Как в эту строку записать нужную кодировку (utf-8) и обязательны ли остальные параметры?

Выделить код

Код:

gBrowser.addTab( URL, referrerURI, charset, postData, owner, allowThirdPartyFixup )

Отсутствует

 

№767013-04-2014 01:14:22

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

Re: Custom Buttons

Ferguss114 пишет

Как в эту строку записать нужную кодировку (utf-8) и обязательны ли остальные параметры?

Видимо, "utf-8" или "utf8".
Все параметры, кроме первого, скорее всего, не обязательны, но это зависит от реализации:
view-source:chrome://browser/content/tabbrowser.xml

Выделить код

Код:

<method name="addTab">
        <parameter name="aURI"/>
        <parameter name="aReferrerURI"/>
        <parameter name="aCharset"/>
        <parameter name="aPostData"/>
        <parameter name="aOwner"/>
        <parameter name="aAllowThirdPartyFixup"/>
        <body>
          <![CDATA[
            const NS_XUL = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
            var aFromExternal;
            var aRelatedToCurrent;
            var aSkipAnimation;
            var aDisableMCB;
            if (arguments.length == 2 &&
                typeof arguments[1] == "object" &&
                !(arguments[1] instanceof Ci.nsIURI)) {
              let params = arguments[1];
              aReferrerURI          = params.referrerURI;
              aCharset              = params.charset;
              aPostData             = params.postData;
              aOwner                = params.ownerTab;
              aAllowThirdPartyFixup = params.allowThirdPartyFixup;
              aFromExternal         = params.fromExternal;
              aRelatedToCurrent     = params.relatedToCurrent;
              aSkipAnimation        = params.skipAnimation;
              aDisableMCB           = params.disableMCB;
            }
            ...

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

Отсутствует

 

№767113-04-2014 02:23:45

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 25.0

Re: Custom Buttons

А почему если я запускаю код

Выделить код

Код:

gBrowser.addTab('https://forum.mozilla-russia.org/', 'windows-1251')

открывается пустая вкладка ?

А если

Выделить код

Код:

gBrowser.addTab('https://forum.mozilla-russia.org/', null, 'windows-1251', null, false)

то нужная страница открывается, но кодировка не та, что я написал в скрипте, а та, что установлена в меню "Вид" - т. е. utf-8

Отредактировано Ferguss114 (13-04-2014 02:24:33)

Отсутствует

 

№767214-04-2014 10:16:00

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

Re: Custom Buttons

Ferguss114 пишет

открывается пустая вкладка ?

Второй аргумент – nsIURI или null/undefined (или объект, если использовать новый формат вызова с двумя аргументами).

Ошибка: Could not convert JavaScript argument arg 2 [nsIWebNavigation.loadURI] = NS_ERROR_XPC_BAD_CONVERT_JS
Источник: chrome://global/content/bindings/browser.xml
Строка: 148

Ferguss114 пишет

то нужная страница открывается, но кодировка не та, что я написал в скрипте, а та, что установлена в меню "Вид" - т. е. utf-8

Видимо, не работает. Или там какая-то другая логика.
Там потом вызывается

Выделить код

Код:

b.loadURIWithFlags(aURI, flags, aReferrerURI, aCharset, aPostData);

И потом уже сам loadURIWithFlags() (view-source:chrome://global/content/bindings/browser.xml):

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

Выделить код

Код:

<method name="loadURIWithFlags">
        <parameter name="aURI"/>
        <parameter name="aFlags"/>
        <parameter name="aReferrerURI"/>
        <parameter name="aCharset"/>
        <parameter name="aPostData"/>
        <body>
          <![CDATA[
            if (!aURI)
              aURI = "about:blank";

            if (aCharset) {
              try {
                this.docShell.parentCharset = aCharset;
              }
              catch (e) {
              }
            }

            if (!(aFlags & this.webNavigation.LOAD_FLAGS_FROM_EXTERNAL))
              this.userTypedClear++;

            try {
              this.webNavigation.loadURI(aURI, aFlags, aReferrerURI, aPostData, null);
            } finally {
              if (this.userTypedClear)
                this.userTypedClear--;
            }
          ]]>
        </body>
      </method>


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

Отсутствует

 

№767315-04-2014 12:51:41

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 25.0

Re: Custom Buttons

А как же все-таки открыть скриптом вкладку с нужной кодировкой?

Отсутствует

 

№767415-04-2014 13:24:31

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

Re: Custom Buttons

Ferguss114 пишет

А как же все-таки открыть скриптом вкладку с нужной кодировкой?

Можно вот так попробовать:

Выделить код

Код:

var tab = gBrowser.addTab("https://forum.mozilla-russia.org/");
tab.linkedBrowser.docShell.charset = "windows-1251";

, по аналогии с меню кодировок:

Выделить код

Код:

oncommand="BrowserSetForcedCharacterSet(event.target.getAttribute('charset'));"
Выделить код

Код:

function BrowserSetForcedCharacterSet(aCharset)
{
  if (aCharset) {
    gBrowser.docShell.gatherCharsetMenuTelemetry();
    gBrowser.docShell.charset = aCharset;
    // Save the forced character-set
    if (!PrivateBrowsingUtils.isWindowPrivate(window))
      PlacesUtils.setCharsetForURI(getWebNavigation().currentURI, aCharset);
  }
  BrowserCharsetReload();
}

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

Отсутствует

 

№767515-04-2014 15:31:42

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 25.0

Re: Custom Buttons

Большое спасибо Infocatcher!

Отсутствует

 

Board footer

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