Envoyé par : LvR
Date : 08/12/2005 10:10
Bonjour a tous,
je suis en train de faire une extension pour FF1.5, qui me rajoute une sidebar avec dedans un <iframe> (j'ai essayé aussi un <browser>) pour afficher un site de mon choix dans la sidebar ..
j'ai fait des overlays pour les menus, les raccourcis claviers, la sidebar, c'est tout fonction bien .. a part un truc :
voila qq détail de mon extension :
chrome.manifest :
content lolfox chrome/chromeFiles/content/ overlay chrome://browser/content/browser.xul chrome://lolfox/content/browser.overlay.xul
mes overlays (browser.overlay.xul):
<menupopup id="viewSidebarMenu">
<menuitem key="keyopenLOLFoxSidebar" observes="viewLOLFoxSidebar"/>
</menupopup>
<keyset id="mainKeyset">
<key id="keyopenLOLFoxSidebar" modifiers="control" key="Q" command="viewLOLFoxSidebar" />
</keyset>
<broadcasterset id="mainBroadcasterSet">
<broadcaster id="viewLOLFoxSidebar"
autoCheck="false"
label="LOLFox"
type="checkbox"
group="sidebar"
sidebarurl="chrome://lolfox/content/lolfox.xul"
sidebartitle="LOLFox"
oncommand="toggleSidebar('viewLOLFoxSidebar');"/>
</broadcasterset>
et le xul principal de mon extension (lolfox.xul):
<window xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="LOLFox"
windowtype="LOLFox"
orient="vertical"
persist="screenX screenY width height sizemode content-body"
onload=""
screenX="10" screenY="10"
id="xr-main">
<browser id="content-body"
src="http://www.monsite.net"
/>
</window>
Voila, si je test dans firefox l'url : chrome://lolfox/content/lolfox.xul, le bouton milieu et droit fonctionne (ca affiche la popup), mais des que c'est dans une sidebar, ca ne fonctionn plus. C'est donc une restriction du aux sidebars.
Est-ce que qqun a une idée pour faire fonctionner le bouton du milieu sur n'importe quel lien dans une page qui est dans une sidebar ??
(par ex, la sidebar marque-page fonctionne bien, car si je met mon site dans un marque-page dans une sidebar, le bouton, du milieu fonctionne aussi ....)
Envoyé par : LvR
Date : 08/12/2005 16:30
Bon, après avoir pas mal chercher, j'ai reusisi a faire qqch ...
j'ai ajouté un onclick="onLinkClick(this, event);" sur mon element <browser>, et crée cette fonction dans un .js:
function onLinkClick(node, event)
{
if (event.button == 1 ) {
if (event.target.href!=undefined) {
var url = event.target.href;
if (url.substr(0,7)=='http://') {
openUILinkIn(url, "tab");
}
}
}
}
du coup cette fonction est appellée a chaque clic n'importe ou sur la page, et moi je filtre sur les boutond du milieu ( event.button == 1 ), ensuite je récupere le target de l'evenement, et si il a un href, c'est un lien, et s'il commence par "http://" j'ouvre un nouveau tab (fonction openUILinkIn définie dans chrome://browser/content/utilityOverlay.js).
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.