Хочу подменять некоторые ссылки браузеру по клику "открыть в новой вкладке" (а так же "открыть в новом окне"). Надо чтобы код отработал до того, как откроется новая вкладка, заменять html на исходной странице нельзя. Не подскажете, как примерно это можно сделать ?

:offtopic: То есть все борются с фишингом, а мы тут придумаем новую фишку?

а мы тут придумаем новую фишку?

Ну кому фишка для фишинга, а у меня немного другие цели. Я же не предлагаю это как-то скрыть - пусть показывает ссылку как обычно. Никто не мешает смотреть, куда ты "улетел" при щелчке по ссылке. Просто есть необходимость небольшой "цензуры".

Разобрался ;) Регистрируем листинер на контекстном меню

     var menu = document.getElementById("contentAreaContextMenu");
     if(menu){
         menu.addEventListener("popupshowing", MyProcedura, false);
     }

Далее в MyProcedura отлавливаем "показывание", берем gContextMenu - он уже есть, т.к. вызвалось popupshowing, в нем есть проперть linkURL - вписываем туда http://www.ya.ru/ и чел по клику на "открыть в новой вкладке" улетает в яндекс.

что то типа этого:

       if(gContextMenu){

         if (typeof(gContextMenu.linkURL)=='string')
         {
             gContextMenu.linkURL = 'http://www.ya.ru/';
         }

Ну и по выгрузке расширения удаляем листенер.