<page> <vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" > <script type="text/javascript"> // Get XUL textbox var textboxExpression = document.getElementById('expression'); /** * Add value to textbox expression. **/ function addToExpression(value) { textboxExpression.value=textboxExpression.value + value; } /** * Evaluate expression contains into textbox * and update it with evaluation result. **/ function evaluateExpression() { try { // Evaluate expression var exp = textboxExpression.value; textboxExpression.value = eval(exp); } catch(e) { // Expression is not valid, display error into texbox. textboxExpression.value = e; } } </script> <hbox> <textbox id="expression" flex="1" /> </hbox> <hbox> <grid> <columns> <column flex="1" /> <column flex="1" /> <column flex="1" /> <column flex="1" /> </columns> <rows> <row> <button label="7" oncommand="addToExpression(this.label)" /> <button label="8" oncommand="addToExpression(this.label)" /> <button label="9" oncommand="addToExpression(this.label)" /> <button label="/" oncommand="addToExpression(this.label)" /> </row> <row> <button label="4" oncommand="addToExpression(this.label)" /> <button label="5" oncommand="addToExpression(this.label)" /> <button label="6" oncommand="addToExpression(this.label)" /> <button label="*" oncommand="addToExpression(this.label)" /> </row> <row> <button label="1" oncommand="addToExpression(this.label)" /> <button label="2" oncommand="addToExpression(this.label)" /> <button label="3" oncommand="addToExpression(this.label)" /> <button label="-" oncommand="addToExpression(this.label)" /> </row> <row> <button label="0" oncommand="addToExpression(this.label)" /> <spacer /> <button label="=" oncommand="evaluateExpression()" /> <button label="+" oncommand="addToExpression(this.label)" /> </row> </rows> </grid> </hbox> </vbox> </page>
Les script sont définis dans un élement XML script qui doit étre inclu dans la description XUL (inclus dans l'élement root vbox). Il est conseillé d'englober le script avec la section CDATA car vos scripts pourraient utiliser des caractéres comme < , > qui ne rendraient plus valide la description XML de la page.
Le script suivant :
// Get XUL textbox var textboxExpression = document.getElementById('expression');
Le script suivant :
function addToExpression(value) { textboxExpression.value=textboxExpression.value + value; }
le script suivant :
function evaluateExpression() { try { // Evaluate expression var exp = textboxExpression.value; textboxExpression.value = eval(exp); } catch(e) { // Expression is not valid, display error into texbox. textboxExpression.value = e; } }
Ces fonctions sont ensuite appelées lors d'un clic sur un bouton XUL comme ceci :
<button label="+" oncommand="addToExpression(this.label)" />
<button label="=" oncommand="evaluateExpression()" />