MozillaPL.org - polskie centrum Mozilli

Główne menu:

Przerabianie Toolbara

Projektowanie aplikacji i rozszerzeń opartych na technologiach Mozilla Foundation: XUL, JavaScript, XPCOM, XBL i innych

Moderator: Pomocy?!

Przerabianie Toolbara

Postautor: Rafał Ł. » 24 sierpnia 2008, 11:43

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9) Gecko/2008061015 Firefox/3.0 FirePHP/0.1.1

Gdzieś ktoś napisał żeby naukę XUL najpierw zacząć od przerabianek różnych rozszerzeń (bo tylko to mnie interesuje, wtyczki mi wiszą, a motywy nie, bo z grafiki jestem lipa). Znalazłem ładne w miarę proste i funkcjonalne rozszerzenie które uznałem że będzie idealne do nauki - Allegro Toolbar.

Muszę powiedzieć że język XUL jest dość łatwy i jednocześnie rozbudowany podoba mi się :)

A więc tak. Pootwierałem pliki: overlay.xul, allegrotoolbar.js, chrome.manifest, install.rdf a options.xul na razie skasowałem bo uznałem że preferencje to później. Z pliku js starego nie zostało prawie nic wszystko zastąpione przez moje funkcje. W overlay się głównie bazowałem ale też prawie nic ze starego nie zostało (szukajka przerobiona, reszta skasowana i napisana przeze mnie). Chrome.manifest i install.rdf przerobiony.

Gdzie mam problem?

Otóż rozszerzenie instaluje się poprawnie, overlay.xul i reszta ładują się ok, oprócz pliku mfotoolbar.js (pozmieniałem nazwy z allegrotoolbar na mfotoolbar gdyż mój przerobiony toolbar dotyczy innego serwisu). Nie wiedzieć czemu nci z Js nie działało. Mimochodem powiem, że miałem również tutaj zainstalowane allegro-toolbar, żeby patrzeć co w XUL jak wygląda graficznie na toolbarze, więc miałem zainstalowane 2 różne toolbary (mfo i allegro). W moim toolbarze większość opcji po prostu otwierało jakieś strony, służyło mi do tego MFOWczytajStrone (moje). W jednym z linków zmieniłem zamiast MFOWczytajStrone('http://sss.pl') na AllegroWczytajStrone (identycznie nazywa sie funkcja w AllegroToolbar).
Zadziałało.

Dochodzę do wniosku, że mój toolbar nie ładuje pliku:
chrome://mfotoolbar/content/mfotoolbar.js
tylko
chrome://allegrotoolbar/content/allegrotoolbar.js
Dlaczego?
Dopiszę że gdy wpiszę w pasek adresu:
chrome://mfotoolbar/content/mfotoolbar.js
poprawnie wyświetla mi się kod Javascript pliku...

Reasumując: Dlaczego po przerobieniu toolbara wczytauje się plik .js ze starego, a nie z nowego toolbara?
Rafał Ł.
 

Postautor: Rafał Ł. » 24 sierpnia 2008, 13:28

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9) Gecko/2008061015 Firefox/3.0 FirePHP/0.1.1

Pomyślałem sobie, że może jakieś stare pliki sie ostaly w folderze z mf toolbar, zrobiłem nowy folder i przekopiowałem:
content
skin
content/mfotoolbar.js
content/overlay.xul
skin/ ddd // tutaj rozne obrazki
chrome.manifest
install.rdf

zainstalowałem i teraz wogole toolbara nie widać :( Już mnie trochę zaczyna XUL odrzucać...
Rafał Ł.
 

Postautor: Gość » 24 sierpnia 2008, 16:11

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9) Gecko/2008061015 Firefox/3.0 FirePHP/0.1.1

Dobra jakoś już coś działa, ale dalej błąd ten sam co w poście 1.
Gość
 

Postautor: Stef » 25 sierpnia 2008, 12:17

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.9.0.1) Gecko/2008082121 Firefox/3.0.1 Flock/2.0b3pre

Abo w którymś z plików xul (overlay do którego przypisane ma być mfotoolbar.js) zapomniałeś zmienić ścieżki w elemencie script albo masz problem z ładowaniem/odpalaniem samego JS; najprawdopodobniej..

Udostępnij kod bo tak to straszna zgadywanka.
Czasami coś napiszę na stef.log
Stef
Moderator
 
Posty: 3466
Z nami od: 16 kwietnia 2004, 11:05

Postautor: Gość » 26 sierpnia 2008, 09:21

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9) Gecko/2008061015 Firefox/3.0 FirePHP/0.1.1

chrome.manifest

content mfotoolbar chrome/content/

skin mfotoolbar classic/1.0 chrome/skin/

overlay chrome://browser/content/browser.xul chrome://mfotoolbar/content/overlay.xul

overlay chrome://navigator/content/navigator.xul chrome://mfotoolbar/content/overlay.xul

install.rdf

<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>mfotoolbar@rafallasocha.info</em:id>
<em:name>MFO Toolbar</em:name>
<em:version>1.0</em:version>
<em:description>Pasek narzędziowy My-Fantasy Online</em:description>
<em:creator>Ukryty-Samuraj</em:creator>
<!-- <em:homepageURL>homepage</em:homepageURL> -->
<!-- <em:optionsURL>preferencje</em:optionsURL> -->
<!-- <em:iconURL>ikona</em:iconURL> -->

<!-- Firefox: -->
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.5</em:minVersion>
<em:maxVersion>3.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>


Zaraz dam overlay.xul i mfotoolbar.js
Gość
 

Postautor: Gość » 26 sierpnia 2008, 09:24

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9) Gecko/2008061015 Firefox/3.0 FirePHP/0.1.1

mfotoolbar.js

function MFOWczytajStrone(url, swiat) {
doneUrl = 'http://'+swiat+'.my-fantasy.net/'+url;

gBrowser.addTab(doneUrl, null);

}

function WczytajStrone(url) {
gBrowser.addTab(url, null);
}

function OdpalSkrypt(skrypt) {
url = 'javascript:'+skrypt+';';
gBrowser.selectedTab = gBrowser.addTab(url, null)
}

function sKalkulator() {
expr=prompt('Formula...(np. 3*2+5-7/8','');
if(expr){with(Math){evl=parseFloat(eval(expr))};
if(isNaN(evl)){ alert('To nie liczba!')}else{void(prompt('Wynik:',evl))}}else{void(null)
}

function sStratyZyski() {
zgold=prompt('Podaj golda','');
zexp=prompt('Podaj exp','');
zrank=prompt('Podaj rank','');
var sgold = zgold * 0.025;
var sexp = zexp * 0.0025;
var srank = zrank * 0.1;
zdanie='Stracisz/Zyskasz '+srank.toFixed()+' punktów rankingowych, '+sexp.toFixed()+' expa i '+sgold+' golda.';
alert(zdanie);
}

function sOdswiezacz() {
gBrowser.selectedTab = gBrowser.addTab("javascript:void(setInterval(function(){readURL('map_mover.php?draw=0', 0, ParseMover)},5000));", null);
}

function MFOSzukaj(swiat) {
searchTerm = document.getElementById('MFOSzukaj').value;
adres = "search.php?cup_id=&search_now=1&p=player&s_name=";
szukaj = adres+searchTerm;
MFOWczytajStrone(adres, swiat);
}

function MFOInfo() {
alert("My-Fantasy Toolbar \n v.1.0 \n by Ukryty_Samuraj");
}
Gość
 

Postautor: Gość » 26 sierpnia 2008, 09:27

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9) Gecko/2008061015 Firefox/3.0 FirePHP/0.1.1

overlay.xul

<?xml version="1.0"?>



<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">


<script type="application/x-javascript" src="chrome://mfotoolbar/content/mfotoolbar.js"/>


<toolbox id="navigator-toolbox">

<popupset>

<popup id="MFOMenu">

<menuitem id="w1" label="Świat 1" type="radio" name="swiat" oncommand="swiat = 'w1'" checked="true"/>
<menuitem id="w2" label="Świat 2" type="radio" name="swiat" oncommand="swiat = 'w1'" />
<menuitem id="w3" label="Świat 3" type="radio" name="swiat" oncommand="swiat = 'w1'" />

</popup>

</popupset>

<toolbar id="mfotoolbar" toolbarname="My-Fantasy Toolbar" class="chromeclass-toolbar" context="MFOMenu">

<toolbarbutton oncommand="WczytajStrone('http://www.my-fantasy.net')" image="chrome://mfotoolbar/skin/mfo.png" tooltiptext="My-Fantasy Online"/>


<toolbarseparator/>


<toolbarbutton label="Karawana " type="menu">

<menupopup>

<menuitem label="Menu karawany" oncommand="AllegroWczytajStrone('http://www.my-fantasy.net/caravan.php')"/>
<menuseparator/>

<menuitem label="Eternia" oncommand="gBrowser.addTab('update.php?m=caravan&c_id=1&uid=11111111', null)"/>
<menuitem label="Langeburg" oncommand="MFOWczytajStrone('update.php?m=caravan&c_id=2&uid=11111111', 'w1')"/>
<menuitem label="Urkaden" oncommand="MFOWczytajStrone('update.php?m=caravan&c_id=12&uid=11111111', 'w1')"/>
<menuitem label="Eliar" oncommand="MFOWczytajStrone('update.php?m=caravan&c_id=13&uid=11111111', 'w1')"/>
<menuitem label="Devos" oncommand="MFOWczytajStrone('update.php?m=caravan&c_id=14&uid=11111111', 'w1')"/>
<menuitem label="Nordia" oncommand="MFOWczytajStrone('update.php?m=caravan&c_id=15&uid=11111111', 'w1')"/>
<menuitem label="Azarad" oncommand="MFOWczytajStrone('update.php?m=caravan&c_id=19&uid=11111111', 'w1')"/>
<menuitem label="Scythe" oncommand="MFOWczytajStrone('update.php?m=caravan&c_id=20&uid=11111111', 'w1')"/>
<menuitem label="Kurthus" oncommand="MFOWczytajStrone('update.php?m=caravan&c_id=16&uid=11111111', 'w1')"/>
<menuitem label="Oasis" oncommand="MFOWczytajStrone('update.php?m=caravan&c_id=17&uid=11111111', 'w1')"/>
<menuitem label="Folhord" oncommand="MFOWczytajStrone('update.php?m=caravan&c_id=18&uid=11111111', 'w1')"/>

</menupopup>

</toolbarbutton>

<toolbarseparator/>


<toolbarbutton label="Narzędzia " type="menu">

<menupopup>

<menuitem label="Straty/Zyski" oncommand="sStratyZyski()"/>

<menuitem label="Odświeżacz" oncommand="sOdswiezacz()"/>

<menuitem label="Kalkulator" oncommand="sKalkulator()"/>

</menupopup>

</toolbarbutton>

<toolbarseparator/>

<toolbarbutton label="Linki " type="menu">

<menupopup>

<menuitem label="Parser raportów" oncommand="WczytajStrone('http://pitazboras.sitesfree.com')"/>

<menuitem label="Forum" oncommand="WczytajStrone('http://forum.my-fantasy.net')"/>

<menuitem label="Portal" oncommand="WczytajStrone('http://portal.my-fantasy.net')"/>

</menupopup>

</toolbarbutton>


<toolbarseparator/>


<textbox id="MFOSzukaj" type="autocomplete" autocompletepopup="PopupAutoComplete" autocompletesearch="search-autocomplete" autocompletesearchparam="searchbar-history" onkeypress="if(event.keyCode == 13) {MFOSzukaj(swiat)}" minwidth="130" />

<toolbarbutton id="MFOPrzyciskSzukaj" style="padding: 0px; margin: 0px; max-height: 24px;" oncommand="MFOSzukaj(swiat)" image="chrome://mfotoolbar/skin/szukaj.png" tooltiptext="Szukaj">

</toolbarbutton>



<toolbarspring/>


<toolbarbutton id="ToolbarInfo" style="padding: 0px; margin: 0px; max-height: 24px;" oncommand="MFOInfo()" image="chrome://mfotoolbar/skin/info.png"/>

</toolbar>

</toolbox>







</overlay>
Gość
 

Postautor: Stef » 26 sierpnia 2008, 12:48

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.9.0.1) Gecko/2008082608 Firefox/3.0.1 Flock/2.0b3pre

To tak:
1. Kod na forum umieszczaj wykorzystując znaczniki code
2. Naucz się formatować kod!
3. W overlay.xul w menu Karawana zamień & na &amp;
4. W mfotoolbar.js w lini 20 brakuje } na końcu
5. Przeproś się z konsolą błędów (Narzędzia → Konsola błędów)
6. Dokumentację znajdziesz na MDC
Czasami coś napiszę na stef.log
Stef
Moderator
 
Posty: 3466
Z nami od: 16 kwietnia 2004, 11:05

Postautor: Gość » 26 sierpnia 2008, 17:11

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9) Gecko/2008061015 Firefox/3.0 FirePHP/0.1.1

1.Przepraszam, zapomniałem :(
2.Tzn?
3&4.Już poprawiam.
5.No coś takiego :) Bajer.
6. Czytałem. Po łebkach ^^ Tzn. Czytałem to co mnie interesowało :)
Gość
 

Postautor: Stef » 26 sierpnia 2008, 17:59

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.9.0.1) Gecko/2008082610 Firefox/3.0.1 Flock/2.0b3pre

Anonymous pisze:2.Tzn?

Kod w formie w której tu go wkleiłeś jest mało czytelny.. prowadzi to do straty czasu, błędów itp. chodzi o takie wizualne jego zorganizowanie względem logicznych elementów aby tego uniknąć. (przykład z usuniętymi powtarzającymi się elementami, więcej na MDC lub w źródłach)
Czasami coś napiszę na stef.log
Stef
Moderator
 
Posty: 3466
Z nami od: 16 kwietnia 2004, 11:05


Wróć do Programowanie z użyciem technologii Mozilli

Kto jest online

Zarejestrowani użytkownicy: Baidu [Spider], dexter, Google [Bot]

Przejdź do powiązanej strony

Nawigacja:

Stopka: