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

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

№109-01-2008 18:55:29

maxshv
Участник
 
Группа: Members
Зарегистрирован: 29-09-2005
Сообщений: 4
UA: Firefox 2.0

Ночичок в XUL. browser и навигация

Здравствуйте уважаемые девелоперы.

Необходимо добавить кнопки навигации к  browser.
Пробую так:

Выделить код

Код:

<?xml version="1.0" encoding="utf8"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="main-window"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    title="ТЕСТ"
    contenttitlesetting="true"
    windowtype="navigator:browser"
    screenX="4" screenY="4"
    persist="screenX screenY width height sizemode"> 

    <toolbox>
        <toolbar id="nav-toolbar">
            <toolbarbutton label="Назад" oncommand='window.history.back();'/>
            <toolbarbutton label="Вперед" oncommand='window.history.forward();'/>
            <spacer flex="1" />
            <toolbarbutton label="Выйти" tooltiptext="Закрыть приложение" oncommand='window.close();'/>
        </toolbar>
    </toolbox>

    <browser id="browser" flex="1" type="content" src="index.html"/>

</window>

но не работает. Что нужно исправить, чтобы заработало?

Отсутствует

 

№209-01-2008 19:09:39

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Firefox 2.0

Re: Ночичок в XUL. browser и навигация

Выделить код

Код:

window.history.back();

->

Выделить код

Код:

document.getElementById("browser").back();

и т.д.

Добавлено Wed Jan  9 19:14:21 2008 :
вместо back() нужно использовать goBack()
http://developer.mozilla.org/en/docs/XUL:browser

Отредактировано shutnik (09-01-2008 19:14:57)

Отсутствует

 

№309-01-2008 22:38:21

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

Re: Ночичок в XUL. browser и навигация

view-source:chrome://global/content/bindings/browser.xml (это урл)
<method name="goBack"> и далее

Отредактировано Infocatcher (09-01-2008 22:38:39)


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

Отсутствует

 

№423-04-2014 06:52:59

Michael72
Участник
 
Группа: Members
Откуда: Казахстан
Зарегистрирован: 21-02-2013
Сообщений: 25
UA: IE 11.0
Веб-сайт

Re: Ночичок в XUL. browser и навигация

А как можно сделать, чтобы атрибут disabled у toolbarbutton label="Назад" был равен true в случае, когда document.getElementById("browser").canGoBack=false, а когда document.getElementById("browser").canGoBack=true, то disabled у label="Назад" наоборот равнялся бы false?
То, что напрашивается в первую очередь:

Выделить код

Код:

<toolbox>
        <toolbar id="nav-toolbar">
            <toolbarbutton label="Назад" image="images/Arrowlt.Bmp" orient="vertical" oncommand="document.getElementById('browser').goBack();" disabled="!document.getElementById('browser').canGoBack"/>
            <toolbarbutton label="Вперед" image="images/Arrowrt.Bmp" orient="vertical" oncommand="document.getElementById('browser').goForward();"/>
        </toolbar>
    </toolbox>

Не помогает.

Отредактировано Michael72 (23-04-2014 19:26:30)

Отсутствует

 

№524-04-2014 00:29:29

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

Re: Ночичок в XUL. browser и навигация

Michael72 пишет

А как можно сделать, чтобы атрибут disabled у toolbarbutton label="Назад" был равен true в случае, когда document.getElementById("browser").canGoBack=false, а когда document.getElementById("browser").canGoBack=true, то disabled у label="Назад" наоборот равнялся бы false?

Пример есть в chrome://browser/content/browser.js:

Выделить код

Код:

gBrowser.addProgressListener(window.XULBrowserWindow);
...
var XULBrowserWindow = {
  ...
  onLocationChange: function (aWebProgress, aRequest, aLocationURI, aFlags) {
    ...
       UpdateBackForwardCommands(gBrowser.webNavigation);
    ...
  },
  ...
};
...
function UpdateBackForwardCommands(aWebNavigation) {
  var backBroadcaster = document.getElementById("Browser:Back");
  var forwardBroadcaster = document.getElementById("Browser:Forward");

  // Avoid setting attributes on broadcasters if the value hasn't changed!
  // Remember, guys, setting attributes on elements is expensive!  They
  // get inherited into anonymous content, broadcast to other widgets, etc.!
  // Don't do it if the value hasn't changed! - dwh

  var backDisabled = backBroadcaster.hasAttribute("disabled");
  var forwardDisabled = forwardBroadcaster.hasAttribute("disabled");
  if (backDisabled == aWebNavigation.canGoBack) {
    if (backDisabled)
      backBroadcaster.removeAttribute("disabled");
    else
      backBroadcaster.setAttribute("disabled", true);
  }

  if (forwardDisabled == aWebNavigation.canGoForward) {
    if (forwardDisabled)
      forwardBroadcaster.removeAttribute("disabled");
    else
      forwardBroadcaster.setAttribute("disabled", true);
  }
}

https://developer.mozilla.org/en-US/doc … ssListener
https://developer.mozilla.org/en-US/doc … er#Methods

Там вызывается https://developer.mozilla.org/en-US/doc … ener%28%29
Но, как минимум, для gBrowser'а aNotifyMask не работает (но в новых версиях можно вместо этого реализовать только нужные методы).


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

Отсутствует

 

№624-04-2014 02:45:17

Michael72
Участник
 
Группа: Members
Откуда: Казахстан
Зарегистрирован: 21-02-2013
Сообщений: 25
UA: IE 11.0
Веб-сайт

Re: Ночичок в XUL. browser и навигация

Как тяжело было разобраться, но слава Б-гу получилось. Большое вам спасибо за хорошую наводку.

Отсутствует

 

Board footer

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