Ссылка расширения боковой панели Firefox загружена в новую вкладку браузера. Как? - PullRequest
1 голос
/ 04 февраля 2009

У меня есть расширение боковой панели friefox. Если его открыть, нажав на значок панели инструментов, я загружаю его с веб-страницей (которую я создал). Теперь, если пользователь нажимает на ссылку на веб-странице (которая загружается в боковую панель), я хочу, чтобы связанная веб-страница открывалась в новой вкладке главного окна. Я попытался с этим в моей разметке веб-страницы:

<a target="_content" href="http://www.google.com">Google</a>

Но ссылка открывается на вкладке, которая имеет фокус, а не на новой вкладке.

Пожалуйста, помогите.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 04 февраля 2009

Если вместо этого вы используете target = "_ blank", FF (версия 3) должна открыть для него новую вкладку. Не пробовал с боковой панели, но стоит попробовать.

1 голос
/ 17 февраля 2009

На самом деле нет способа загрузить веб-страницу (чья ссылка была на другой веб-странице, загруженной в расширение боковой панели) на новую вкладку в браузере. Единственный способ - использовать JavaScript. Это должно выполняться в привилегированных условиях (т.е. как часть расширения), как показано ниже:

gBrowser.addTab("http://www.google.com/");

EDIT:

Вышеупомянутая техника добавления вкладки браузера в этом случае не работает. Согласно этой статье код, запущенный на боковой панели, не имеет доступа к главному окну. Итак, сначала я получил доступ к окну браузера перед использованием gBrowser. Вот код, взятый с сайта, который я использовал и работает должным образом:

var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIWebNavigation)
.QueryInterface(Components.interfaces.nsIDocShellTreeItem)
.rootTreeItem
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindow);

После того, как я получил доступ к окну браузера, я получил доступ к gBrowser через функцию getBrowser, как показано ниже:

mainWindow.getBrowser().addTab("http://www.google.com/");

Откроется новая вкладка в главном окне браузера.

0 голосов
/ 04 февраля 2009
<a href="http://www.google.com" target="new">Google</a>

Это больше зависит от используемого браузера. Firefox и Opera, и я уверен, что новейший IE отображает «новые окна» в качестве новой вкладки, если пользовательские настройки не указывают иное.

...