2009-02-04 6 views
1

J'ai une extension de barre latérale friefox. Si c'est ouvert en cliquant sur l'icône de la barre d'outils, je le charge avec une page web (que j'ai créée). Maintenant, si l'utilisateur clique sur le lien sur la page Web (c'est chargé dans la barre latérale), je veux que la page Web liée s'ouvre dans un nouvel onglet de la fenêtre principale. J'ai essayé avec cela dans mon balisage de la page Web:Le lien de l'extension de la barre latérale Firefox est chargé dans un nouvel onglet du navigateur. Comment?

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

Mais le lien ouvre dans l'onglet qui a le focus et non dans un nouvel onglet.

Aidez-nous s'il vous plaît.

Merci.

Répondre

1

En fait, il n'y a aucun moyen de charger une page Web (dont le lien était dans une autre page Web chargée dans l'extension de la barre latérale) sur un nouvel onglet dans le navigateur. Le seul moyen est d'utiliser javascript. Cela doit exécuter dans des conditions privilégiées (ce qui signifie dans le cadre d'une extension) comme ci-dessous:

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

EDIT:

La technique ci-dessus d'ajouter un onglet du navigateur ne fonctionne pas dans ce cas. Selon this article code en cours d'exécution dans la barre latérale n'a pas accès à la fenêtre principale. Donc d'abord j'ai eu accès à la fenêtre du navigateur avant d'utiliser gBrowser. Voici le code tiré du site que je et fonctionne correctement:

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

Après avoir eu accès à la fenêtre du navigateur I accédé gBrowser grâce à la fonction getBrowser comme ci-dessous:

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

L'ouvre un nouvel onglet dans le navigateur de la fenêtre principale.

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

Cela dépend davantage du navigateur utilisé. Firefox et Opera, et je suis sûr que l'IE le plus récent, affiche "nouvelles fenêtres" comme un nouvel onglet, sauf indication contraire par les préférences de l'utilisateur.

2

Si vous utilisez plutôt target = "_ blank", FF (version 3) devrait ouvrir un nouvel onglet. Je n'ai pas essayé à partir d'une barre latérale, mais ça vaut la peine de donner un coup de feu.

+1

_blank et new/_new sont des attributs d'ancrage interchangeables. :) –

+0

Merci SD, je ne savais pas :) – tehvan

Questions connexes