Событие, происходящее в той же вкладке при открытии ссылки с активной вкладки на новую вкладку в расширении Firefox - PullRequest
0 голосов
/ 03 июля 2011
var extension= {
check_domain : function(domain){
        //checking the domain name where event should occur........
},
on_load: function(e) {
    var doc_event = e.originalTarget;
extension.check_domain(doc_event.location.href);
},
init: function(e) {
if(gBrowser){
    gBrowser.addEventListener("DOMContentLoaded", this.on_load, false);
    }
} } window.addEventListener(  "load", function(e) { extension.init(); }, false);

Функция on_load вызывается при нажатии на новую вкладку или ссылку. Но моя проблема в том, что если мы открываем новую ссылку с активной вкладки на новую вкладку, то событие, которое должно происходить на новой вкладке, происходит на активной вкладке, в то время как новая вкладка загружается в фоновом режиме. открываются такие ссылки, что все события происходят на активной вкладке, а не на новой.

Что я хочу, так это чтобы событие происходило на новой вкладке, даже если оно запускается на заднем плане. Как определить новую вкладку и заставить событие произойти в новой вкладке ... (необязательно =>) Не делая новую вкладку активной.

1 Ответ

1 голос
/ 03 июля 2011

Вы не объяснили, как вы проверяете, на какой вкладке произошло событие, я подозреваю, что вы просто смотрите на активную на данный момент вкладку - и это, конечно, не сработает, если что-то загрузится в фоновой вкладке.Вместо этого вы должны взглянуть на e.target (загруженный документ) и проверить, с какой вкладкой он соответствует:

on_load: function(e) {
  var doc = e.target;
  var browser = gBrowser.getBrowserForDocument(doc);
  ...
},

Это даст элемент <browser> вкладки, куда загружен документ (может такжебыть null, если загруженный документ не был документом верхнего уровня).

...