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

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№120-01-2011 22:11:43

cyberovskij
Участник
 
Группа: Members
Зарегистрирован: 11-01-2011
Сообщений: 13
UA: Firefox 3.6

расширение . узнать урл в адресной строке

Есть следующий код , который выполниться при загрузке оверлея:

Выделить код

Код:

var myExtension = {
  init: function() {
    var appcontent = document.getElementById("appcontent");   // browser
    if(appcontent)
      appcontent.addEventListener("DOMContentLoaded", myExtension.onPageLoad, true);

  },
 
  onPageLoad: function(aEvent) {
    var doc = aEvent.originalTarget; // doc is document that triggered "onload" event
    // do something with the loaded page.
    // doc.location is a Location object (see below for a link).
    // You can use it to make your code executed on certain pages only.



 var s=doc.createElement('iframe');
 s.width='400px';
  s.height='100px';
  s.frameborder='0';
  s.scrolling='yes';
  
  s.src ='http://mysite.com/browserstat.php?url_='+doc.location.href;

 doc.getElementsByTagName('body')[0].appendChild(s);
     
    // add event listener for page unload
    //aEvent.originalTarget.defaultView.addEventListener("unload", function(){ myExtension.onPageUnload(); }, true);
  },
 
  onPageUnload: function(aEvent) {
    // do something
  }
}

 window.addEventListener("load", function() { myExtension.init(); }, false);

смысл кода в том что при заходе на каждую страницу должен отправляться адрес этой страницы в базу.
проблема в том, что  на мой пхп скрипт передается кроме того адреса, который отображается в адресной строке, еще много мусора. Например при заходе на ya.ru я получу еще и :
http://suggest.yandex.ru/jquery-1-4-2.crossframeajax.html
http://kiks.yandex.ru/system/fc06.html
javascript:'<body style=\'background:none;overflow:hidden\'>'
как узнать только тот адрес который в адресной строке?

Отсутствует

 

№221-01-2011 03:52:44

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 3.6

Re: расширение . узнать урл в адресной строке

Чем вместо

doc.location.href

не угодил

gBrowser.contentDocument.location

?
Да и чем возиться с iframe, было бы, по моему скромному,  проще и наглядней пользоваться XMLHttpRequest.

Отсутствует

 

№321-01-2011 15:10:42

cyberovskij
Участник
 
Группа: Members
Зарегистрирован: 11-01-2011
Сообщений: 13
UA: Firefox 3.6

Re: расширение . узнать урл в адресной строке

hydrolizer пишет

не угодил

gBrowser.contentDocument.location

А тем что если юзер вместо клика сделает "Открыть в новой вкладке" и не перейдет на нее во время загрузки то
gBrowser.contentDocument.location покажет адрес той вкладки  на которой он находится, а не той что нужно.

Отсутствует

 

№421-01-2011 16:52:03

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 3.6

Re: расширение . узнать урл в адресной строке

cyberovskij пишет

А тем что если юзер вместо клика сделает "Открыть в новой вкладке" и не перейдет на нее во время загрузки то
gBrowser.contentDocument.location покажет адрес той вкладки  на которой он находится, а не той что нужно.

Ну и что?

Выделить код

Код:

gBrowser.tabContainer.addEventListener("TabOpen", myextension.onNewTab, false);
......................
onNewTab: function(event)
{
    gBrowser.getBrowserForTab(event.target)
        .addEventListener("load", myextension.onTabLoadComplete,true);
},

onTabLoadComplete: function(event)
{
    var href=event.target.location.href;
    if (href!="about:blank")
    {
        let console=Components.classes["@mozilla.org/consoleservice;1"]
            .getService(Components.interfaces.nsIConsoleService);
        console.logStringMessage("onTabLoadComplete: "+href);
    }
}

Отсутствует

 

Board footer

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