Envoyé par : gp974
Date : 31/08/2006 11:31
Bonjour,
J'ai un petit souci avec 'broadcaster'
voici donc un exemple :
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window
id="logins-window"
title="Test"
orient="horizontal"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" >
<script>
<![CDATA[
function foo ()
{
alert('foo');
}
function switchbrd ()
{
var bc = document.getElementById('broadc_test');
if (bc.getAttribute("disabled") == "true")
bc.setAttribute("disabled", "false");
else
bc.setAttribute("disabled", "true");
}
]]>
</script>
<broadcasterset>
<broadcaster id="broadc_test" disabled="true" />
</broadcasterset>
<commandset>
<command id="cmd_bc" oncommand="switchbrd();" />
<command id="cmd_test" oncommand="foo();" />
</commandset>
<vbox flex="1">
<toolbox>
<menubar>
<menu label="Action">
<menupopup>
<menuitem label="Switch disabled" command="cmd_bc" />
<menuitem label="Test 1" command="cmd_test" observes="broadc_test" />
</menupopup>
</menu>
</menubar>
</toolbox>
</vbox>
</window>
Le disabled ne fonctionne pas dans le menuitem (ce n'est jamais grisé) mais si je replace le command="cmd_test" par oncommand="foo();" alors là ça marche. Y a t-il une chose que je n'est pas compris avec le broadcaster ?
Il faux savoir que je suis avec firefox-1.5.0.X soux XP ou win98 En version mandriva, slackware avec firefox-1.0.XX celà fonctionne.
Fichier XUL indépendant (non déclaré ds le chrome)
Merçi d'avance
Envoyé par : Paul Rouget
Date : 31/08/2006 17:09
Un broadcaster et un command sont en fait les mêmes élements je crois.
Je sais qu'il y a des soucis avec des balises exploitant un <command> en combinaison avec un <broadcaster> et l'attribut disable.
Personnellement, je dois passer mes broadcaster en disable="true" via du JS au chargement de la page, sinon, ça ne fonctionne pas. Donc l'attribut disable doit être passé à true dans la méthode onload de la ta page xul.
Envoyé par : gp974
Date : 01/09/2006 08:36
Hello Paul,
Celà ne marche pas mieux ! Mais ton conseil n'a pas été vain.
il a suffi de déplacer l'observeur du 'menuitem' vers le 'command'
Avant :
<command id="cmd_test" oncommand="foo();" /> ... <menuitem label="Test 1" command="cmd_test" observes="broadc_test" />
Après
<command id="cmd_test" oncommand="foo();" observes="broadc_test" /> ... <menuitem label="Test 1" command="cmd_test" />
Et là ... Nickel-chrome ;-)
Merci
A++
Gilles
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.