Ouvrir les liens dans des onglets proprement ABOUT.XUL+JS ??

Vous vous penchez sur le développement d'applications ou d'extensions pour Mozilla ? C'est alors vers ce forum que se dirigeront naturellement vos requêtes...
bieps

Ouvrir les liens dans des onglets proprement ABOUT.XUL+JS ??

Message par bieps »

Hello,

Bonjour et merci de m'indiquer et d'expliquer les codes possibles compatible Firefox 1.5 = gecko 1.8 (de type onclick="windows.open('h t t p :// ...')";) pour ouvrir proprement les liens contenus dans un fichier/dialogue about.xul dans des onglets, sans ouvrir une nouvelle fenêtre Firefox.

Fonctionne mais ouvre une nouvelle fenêtre (c'est chiant) sauf en chargeant about.xul dans le navigateur:

Code : Tout sélectionner

<text value="author"
                      class="nameaddon-about-linkclass"
                      tooltiptext="&nameaddon-about.Created_by.tooltiptext;"
                      onclick="window.open('http :// www . example . org / home page');"/>
Je voudrais pouvoir ouvrir les liens dans de nouveaux onglets, soit en avant (focus tab), soit en arrière.

Ne fonctionne pas ; ni en dialogue autonome ni en chargeant le lien chrome about.xul dans Firefox:

Code : Tout sélectionner

<text value="author"
                      class="nameaddon-about-linkclass"
                      tooltiptext="&nameaddon-about.Created_by.tooltiptext;"
                      onclick="window.opener.getBrowser().addTab('http :// www . example . org / home page');"/>
Pourquoi ça marche pas et merci de bien expliquer car l'on est pas des experts comme vous. Il manque un appel en javascript d'un service firefox ou je sais pas quoi ? Merci encore une fois de bien expliquer même en reformulant mieux mes questions.

Le seul truc qui marche pour moi pour l'instant, c'est window.open mais ça crée une fenêtre fille modale ; modale pour la boîte de dialogue about.xul et avec le nom en titre du 'gestionnaire d'addon' mais si je charge le lien chrome d'about.xul, donc la boîte de dialogue about.xul, dans la fenêtre du navigateur Firefox (v3.6.2) les liens de la boîte de dialogue about.xul s'ouvre correctement dans un nouvel onglet.

Le code dans les add-ons comme dans NoScript avec la fonction about open (dans about.xul) pour ouvrir les liens proprement dans des nouveaux onglets peut me servir mais le code est noyé avec d'autres fonctions et je comprends pas quel est le code minimum utile et comment l'adapter. Merci pour l'aide et les explications

Certaines fonctions ou portion de code ont des identifiants arbitraires = on remplace le nom par ce que l'on veut ; mais c'est pas facile de savoir lesquels sont fixes. Pour adapter du code, il faut savoir si le nom est fixe ou arbitraire. Par exemple le palette id "BrowserToolbarPalette" pour (créer et) placer un bouton est un id fixe = on met pas ce que l'on veux comme id, mais faut le savoir. Comment ? Merci.

heu, about.xul avec une balise window en premier (sans s) et pas dialog, c'est une fenêtre car avec la balise dialog le bouton ok et cancel apparaissent automatiquement si l'on ne modifie pas le code ? c'est une question, merci.

merci de m'expliquer aussi (pas seulement :mrgreen: mais m'faut du code que je veux comprendre) comment obtenir le nom de la fenêtre ouverte de Firefox car je crois comprendre qu'avec window.open on peut ouvrir un lien en ciblant un nom de fenêtre. Merci

En plus, si je fais un onglet ou un panneau (...) dans la boîte des options de l'add-on, comment appeler about.xul sans refaire tout le fichier about.xul = comment réutiliser about.xul sans faire un double du contenu ? Comment faire le lien = quel code ? Peut t'on n'afficher qu'une partie sans utiliser les attributs value pour les cibler avec du javascript ? Merci pour les infos.

merci pour tous :|
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: Ouvrir les liens dans des onglets proprement ABOUT.XUL+JS ??

Message par calimo »

Quid d'un

Code : Tout sélectionner

window.opener.openURL(url)
:?:
bieps

Re: Ouvrir les liens dans des onglets proprement ABOUT.XUL+JS ??

Message par bieps »

Oui, merci ça fonctionne :D : window.opener.openURL mais uniquement depuis la boîte de dialogue.

Cela ajoute un onglet, proprement ? Heu, comment avoir un code universel ; qui puisse permettre d'ouvrir un lien depuis n'importe où et pas comme ici depuis la boîte de dialogue about.xul autonome (= pas ouvert comme une page web) ?

J'ai lu et compris qu'il faut accéder au navigateur si l'on est pas dans la fenêtre principale.
J'ai lu que l'on peut mettre deux fois opener si l'on est ""loin"" de la fenêtre principale.

Code : Tout sélectionner

function OpenLink(sOpenType, sURI)
{
    if (sOpenType == 'currentwindow') window.loadURI(sURI);
    if (sOpenType == 'newwindow') openNewWindowWith(sURI);
    if (sOpenType == 'newtab') openNewTabWith(sURI);
}
SOURCE DU CODE CI-DESSUS : http :// forum . captaincaveman . nl / default.aspx?g=posts&t=846

Comment s'en servir, comment l'adapter ? merci.
bieps

Re: Ouvrir les liens dans des onglets proprement ABOUT.XUL+JS ??

Message par bieps »

Pour comprendre ce qu'il y a ci-dessous, j'ai besoin de plusieurs explications sur comment ça fonctionne (tout) pour mieux ensuite savoir/pouvoir adapter les codes (maintenant ou plus tard quand je reviens lire). heu, s'il vous plaît, opener.opener, l'on s'en sert comment et où par exemple = donnez un exemple xul fonctionnel avec et sans pour comprendre la différence ; et pour tous les codes ou méthodes. merci.

https :// developer . mozilla . org / fr / Travailler_avec_des_fen%C3%AAtres_dans_le_chrome
Exemple 3 : Utilisation de nsIWindowMediator lorsque opener ne suffit pas

La propriété window.opener est très facile à utiliser, mais elle n'est utile que lorsque vous pouvez vous assurer que la fenêtre a été ouverte depuis un endroit connu. Dans des cas plus compliqués, vous devez utiliser l'interface nsIWindowMediator dont il est fait état plus haut.

Une situation dans laquelle nsIWindowMediator peut être utilisé est dans la fenêtre d'options d'une extension. Supposons que vous développez une extension au navigateur qui consiste en un overlay sur browser.xul et une fenêtre d'options. Supposons que l'overlay contient un bouton pour ouvrir la fenêtre d'options de l'extension, qui doit lire certaines données depuis la fenêtre de navigation. Comme vous vous en souvenez peut-être, le gestionnaire d'extensions de Firefox peut également être utilisé pour ouvrir votre fenêtre d'options.

Cela signifie que la valeur de window.opener dans votre dialogue d'options n'est pas forcément la fenêtre de navigation, il peut s'agir à la place de la fenêtre du gestionnaire d'extensions. Vous pourriez vérifier la propriété location de l'opener et utiliser opener.opener dans le cas de la fenêtre du gestionnaire d'extensions, mais une meilleure manière de faire est d'utiliser nsIWindowMediator :

Code : Tout sélectionner

var wm = Components.classes["@mozilla . org/appshell/window-mediator;1"]
                   .getService(Components.interfaces.nsIWindowMediator);
var browserWindow = wm.getMostRecentWindow("navigator:browser");
// lecture de valeurs depuis |browserWindow|
Il peut être tentant d'utiliser une technique similaire pour appliquer les changements effectués par l'utilisateur dans la fenêtre d'options, mais une meilleur manière de le faire est d'utiliser les observateurs de préférences.
La parano des m*ng*liens ? : mozilla . org dans le code (et d'autres liens d'ailleurs) est pris pour un lien malicieux = :x ; pfff. mouai, si on est pas inscrit sur le forum ... pour l'instant, car la fondation Mozilla devient presque de plus en plus commercial et fait (ça c'est plus sûr) de plus en plus du marketing comme Microsoft.
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 0 invité