MozillaPL.org - polskie centrum Mozilli

Główne menu:

location.href

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

Moderator: Pomocy?!

location.href

Postautor: Lorek » 06 czerwca 2007, 21:47

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.0.12) Gecko/20070508 Firefox/1.5.0.12

Widajcie mam pewien problem ze zrozumieniem działania mojego skryptu. Stworzyłem sobie proste roszerzenie do FF w celu testowania możliwości XUL i JS. Rozszerzenie instaluje nakładke wraz skryptem.
To jest treść nakladki:
Kod: Zaznacz cały
<?xml version="1.0"?>

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

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

 <statusbar id="status-bar">
  <statusbarpanel id="Lorkpanel" label="FoxLork"/>
 </statusbar>

</overlay>


a to wybrane fragmenty skryptu:
Kod: Zaznacz cały
//*****************************************************************************************
function foxgame_load() {
   window.addEventListener('DOMContentLoaded', start, true);
}


//*****************************************************************************************
function start(event)   {
   
   var doc = event.originalTarget;

      uni(doc);
      pkt_budynki(doc);
      domena(doc);
   
}
//*****************************************************************************************
function domena(docc){

   var p=docc.getElementById("Lorkpanel");   
   var adres=docc.location.href;
        alert(adres);
   p.setAttribute("label",adres);   
}

function foxgame_load()


Przy tworzeniu tego sugerowałem sie fragmentami kodu z dodatku foxgame. Praktycznie szkielet, to jest obsługa zdarzenia, jest żywcem wzięta z tamtąd i poprawiona przeze mnie dla przejrzystości.

Teraz co mnie dręczy... przy otwieraniu strony( przynajmniej tej startowej po uruchomieniu ff) zdarza sie ze alert pokazuje sie nawet 3 razy, w pewnym sensie to rozumiem, gdzieś czytałem o 3 fazach w których można obsłużyć zdarzenie...ale nie o to mi chodzi, jak widac chce jako etykiete na pasku na dole miec aktualnu adres URL, lecz ciągle widnieje tam "chrome://browser/content/browser.xul" natomiast alert pokazuje co innego on pokazuje właściwy URL np. "http://google.pl" a przeciez każe w obu przypadkach wyświetlić tą samą zmienną "adres" , proszę wyjaśnijcie mnie skąd taka rozbieżność. Pozdrawiam Lorek
Lorek
 

Postautor: Zepco » 10 czerwca 2007, 00:53

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20061201 Firefox/2.0.0.4 (Ubuntu-feisty)

Zamiast
Kod: Zaznacz cały
 var adres=docc.location.href;

Użyj
Kod: Zaznacz cały
var adres=content.location.href;


Ewentualnie w funkcji start() dodaj

Kod: Zaznacz cały
   var doc = event.originalTarget;
   if ( doc.nodeType != doc.DOCUMENT_NODE )
       doc = doc.ownerDocument;


Robisz rozszerzenie funkcjonalności dla foxgame?
Zepco
 
Posty: 27
Z nami od: 27 lutego 2005, 22:09
Lokalizacja: Kielce

Postautor: Gość » 10 czerwca 2007, 02:01

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.0.12) Gecko/20070508 Firefox/1.5.0.12

Miałem zamiar tylko zrozumiec działanie foxgame ale juz sie sporo nauczyłem i stworzyłem swoje rozszczerzenie do ff działa jak foxgame ale nie robi nic podobnego... wyświetla ile punktów masz w danej zakładce w ogame, to ejst budynki,flota,badania,flota,obrona i ile w tym każdego surowca.

Wracajac do problemu to domyślam sie juz czemu prosba wyswietlenia tej samej zmiennej mogła dawac dwa rózne rezultaty. Wyobrażam sobei to tak że skoro skrypt zagnieżdzony jest w xul to skoro chce nadac elementowi xul wartosc label równa adresowi strony to wtedy bedzie to adres biezacego dokumentu czyli URI mojego xul, natomiast kiedy wywołuja alert proszac o adres dokumentu to rozumujac ze alert to tak jakby zwiazany raczej z html niz js i xul to obliczany jest url obecnie wyswietlanego htmlowego dokumentu. Ale to takie moje wytłumaczenie nie wiem jak obliczane sa wartosci zmiennych w trakcie działania ff.

Dzieki za ten post i z bogiem.
Gość
 


Wróć do Programowanie z użyciem technologii Mozilli

Kto jest online

Zarejestrowani użytkownicy: Nie ma żadnego zarejestrowanego użytkownika

Przejdź do powiązanej strony

Nawigacja:

Stopka: