macromedia

Transcription

macromedia
000ExtendingDWU.book Page 1 Thursday, June 8, 2000 3:38 PM
macromedia
®
DREAMWEAVER 3
™
Extension de Dreamweaver
et Dreamweaver UltraDev
™
macromedia
000ExtendingDWU.book Page 2 Thursday, June 8, 2000 3:38 PM
Marques commerciales
Afterburner, AppletAce, Attain, Attain Enterprise Learning System, Attain Essentials, Attain Objects for Dreamweaver, Authorware,
Authorware Attain, Authorware Interactive Studio, Authorware Star, Authorware Synergy, Backstage, Backstage Designer, Backstage
Desktop Studio, Backstage Enterprise Studio, Backstage Internet Studio, Design in Motion, Director, Director Multimedia Studio, Doc
Around the Clock, Dreamweaver, Dreamweaver Attain, Drumbeat, Drumbeat 2000, Extreme 3D, Fireworks, Flash, Fontographer,
FreeHand, FreeHand Graphics Studio, Generator, Generator Developer's Studio, Generator Dynamic Graphics Server, Knowledge
Objects, Knowledge Stream, Knowledge Track, Lingo, Live Effects, Macromedia, Macromedia M Logo & Design, Macromedia Flash,
Macromedia Xres, Macromind, Macromind Action, MAGIC, Mediamaker, Object Authoring, Power Applets, Priority Access, Roundtrip
HTML, Scriptlets, SoundEdit, ShockRave, Shockmachine, Shockwave, Shockwave Remote, Shockwave Internet Studio, Showcase, Tools
to Power Your Ideas, Universal Media, Virtuoso, Web Design 101, Whirlwind et Xtra sont des marques commerciales de Macromedia,
Inc. et peuvent être déposées aux Etats-Unis ou dans certains pays. Les autres noms de produits, ainsi que les autres logos, concepts, titres,
mots ou phrases mentionnés dans cette publication peuvent être des marques commerciales, des marques de service ou des noms
commerciaux de Macromedia, Inc. ou d’autres entités et peuvent être déposés dans certains pays.
Ce manuel contient des liens vers des sites web tiers qui ne sont pas contrôlés par Macromedia et Macromedia ne peut en aucun cas être
tenu responsable du contenu de ces sites. Si vous accédez à l’un de ces sites, vous le faites à vos propres risques. Macromedia propose ces
liens dans un but pratique uniquement et ne peut en aucun cas endosser ou accepter la responsabilité du contenu de ces sites tiers.
Dénégation de responsabilité d’Apple
APPLE COMPUTER, INC. N’ASSUME AUCUNE GARANTIE, IMPLICITE OU EXPLICITE, SUR LE LOGICIEL
INFORMATIQUE CI-INCLUS, SA COMMERCIABILITÉ OU SON ADÉQUATION À UN OBJECTIF PARTICULIER.
L’EXCLUSION DES GARANTIES IMPLICITES N’ÉTANT PAS AUTORISÉE DANS CERTAINS ÉTATS, L’EXCLUSION CIDESSUS PEUT DONC NE PAS S’APPLIQUER À VOTRE CAS. CETTE GARANTIE VOUS OFFRE DES DROITS JURIDIQUES
SPÉCIFIQUES. VOUS POUVEZ DISPOSER DE CERTAINS AUTRES DROITS, QUI VARIENT SELON LES ÉTATS.
Copyright © 2000 Macromedia, Inc. Tous droits réservés. Ce manuel ne peut pas être copié, photocopié, reproduit, traduit ou
converti sous forme électronique ou informatique, en partie ou en totalité, sans l’autorisation écrite préalable de Macromedia, Inc.
Numéro de pièce ZUD10M200F
Remerciements
Gestion de projet : Sheila McGinn
Rédaction : Lori Hylan et Denise Lee
Production de l’aide et de la documentation imprimée : Chris Basmajian et Masayo Noda
Directeur de localisation : Kristin Conradi
Remerciements spéciaux à Heidi Bauer, Margaret Dumas, Jean Fitzgerald, Karen Gee, Jed Hartman, Steven Johnson, Sho Kuwamoto, Jay
London, Joe Marini, Lisa Miller, Justin Palm, Bob Tartar, Scott Richards, Raymond Lim, Yoko Vogt, Chris Bank, Peter Von Dem Hagen,
Vincent Truong, Katja Sommer, Veronica Luongo, Kazue Watanabe, Luciano Arruda, Daniela Nigrelli-Harding, Sabine Hathaway,
Gwenhaël Jacq, Karen Catlin, Mike Sundermeyer, Victor Grigorieff et SDL International.
Première édition : Mai 2000
Macromedia, Inc.
600 Townsend St.
San Francisco, CA 94103
2
000ExtendingDWU.book Page 3 Thursday, June 8, 2000 3:38 PM
TABLE DES MATIERES
Extension de Dreamweaver - Présentation. . . . . . . 23
Conditions préalables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
Errata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
Le Modèle Objet de Document (DOM) . . . . . . . . . . 25
Modèle Objet de Document dans Dreamweaver . . . . . . . . . . . . . . . . . .25
L’objet dreamweaver et ses propriétés . . . . . . . . . . . . . . . . . . . . . . .29
Informations sur le DOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
Propriétés et méthodes de l’objet document . . . . . . . . . . . . . . . . . .30
Propriétés et méthodes des objets tag HTML . . . . . . . . . . . . . . . . .31
Propriétés et méthodes des objets text. . . . . . . . . . . . . . . . . . . . . . .33
Propriétés et méthodes des objets comment . . . . . . . . . . . . . . . . . .33
Commandes de l’arborescence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
Fonctionnement de JavaScript dans les fichiers d’extension . . . . . . . . . .36
Exécution des scripts au démarrage ou à la fermeture . . . . . . . . . . .37
API JavaScript de Dreamweaver . . . . . . . . . . . . . . . . 39
Description des objets de l’API. . . . . . . . . . . . . . . . . . . . . . . . . . . .40
A propos des activateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
Organisation de ce chapitre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
La fonction la plus importante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
dreamweaver.getDocumentDOM() . . . . . . . . . . . . . . . . . . . . . . . .41
Fonctions relatives aux comportements . . . . . . . . . . . . . . . . . . . . . . . . .42
dom.addBehavior() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
dom.getBehavior() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
dom.reapplyBehaviors() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
dom.removeBehavior(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
dreamweaver.getBehaviorElement() . . . . . . . . . . . . . . . . . . . . . . . .43
dreamweaver.getBehaviorTag() . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
dreamweaver.popupAction() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
dreamweaver.behaviorInspector.getBehaviorAt() . . . . . . . . . . . . . .46
3
000ExtendingDWU.book Page 4 Thursday, June 8, 2000 3:38 PM
dreamweaver.behaviorInspector.getBehaviorCount() . . . . . . . . . . .47
dreamweaver.behaviorInspector.getSelectedBehavior() . . . . . . . . . .47
dreamweaver.behaviorInspector.moveBehaviorDown(). . . . . . . . . .48
dreamweaver.behaviorInspector.moveBehaviorUp() . . . . . . . . . . . .48
dreamweaver.behaviorInspector.setSelectedBehavior() . . . . . . . . . .49
Fonctions relatives au Presse-papiers . . . . . . . . . . . . . . . . . . . . . . . . . . .50
dom.clipCopy() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
dom.clipCopyText(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
dom.clipCut() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
dom.clipPaste() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
dom.clipPasteText() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
dreamweaver.clipCopy(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
dreamweaver.clipCut() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
dreamweaver.clipPaste() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
dreamweaver.getClipboardText() . . . . . . . . . . . . . . . . . . . . . . . . . .53
Fonctions relatives aux commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
dreamweaver.editCommandList() . . . . . . . . . . . . . . . . . . . . . . . . .53
dreamweaver.runCommand() . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
Fonctions relatives aux conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
dom.convertLayersToTable() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
dom.convertTablesToLayers() . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
dom.convertTo30() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
Fonctions relatives aux styles CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
dom.applyCSSStyle() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
dom.removeCSSStyle() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
dreamweaver.cssStylePalette.deleteSelectedStyle() . . . . . . . . . . . . . .56
dreamweaver.cssStylePalette.duplicateSelectedStyle() . . . . . . . . . . .57
dreamweaver.cssStylePalette.editSelectedStyle() . . . . . . . . . . . . . . .57
dreamweaver.cssStylePalette.editStyleSheet() . . . . . . . . . . . . . . . . .57
dreamweaver.cssStylePalette.getSelectedStyle() . . . . . . . . . . . . . . . .57
dreamweaver.cssStylePalette.getSelectedTarget() . . . . . . . . . . . . . . .58
dreamweaver.cssStylePalette.getStyles(). . . . . . . . . . . . . . . . . . . . . .59
dreamweaver.cssStylePalette.newStyle() . . . . . . . . . . . . . . . . . . . . .59
Fonctions relatives aux applications externes . . . . . . . . . . . . . . . . . . . . .60
dreamweaver.browseDocument() . . . . . . . . . . . . . . . . . . . . . . . . . .60
dreamweaver.getBrowserList() . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
dreamweaver.getExtensionEditorList() . . . . . . . . . . . . . . . . . . . . . .61
dreamweaver.getPrimaryBrowser() . . . . . . . . . . . . . . . . . . . . . . . . .61
dreamweaver.getPrimaryExtensionEditor(). . . . . . . . . . . . . . . . . . .62
dreamweaver.getSecondaryBrowser() . . . . . . . . . . . . . . . . . . . . . . .62
4
Table des matières
000ExtendingDWU.book Page 5 Thursday, June 8, 2000 3:38 PM
dreamweaver.openWithApp() . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
dreamweaver.openWithBrowseDialog() . . . . . . . . . . . . . . . . . . . . .62
dreamweaver.openWithExternalTextEditor() . . . . . . . . . . . . . . . . .63
dreamweaver.openWithImageEditor() . . . . . . . . . . . . . . . . . . . . . .63
Fonctions relatives aux manipulations de fichiers. . . . . . . . . . . . . . . . . .63
dreamweaver.browseForFileURL() . . . . . . . . . . . . . . . . . . . . . . . . .64
dreamweaver.browseForFolderURL() . . . . . . . . . . . . . . . . . . . . . . .64
dreamweaver.closeDocument(). . . . . . . . . . . . . . . . . . . . . . . . . . . .65
dreamweaver.createDocument() . . . . . . . . . . . . . . . . . . . . . . . . . . .65
dreamweaver.exportCSS() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
dreamweaver.exportEditableRegionsAsXML() . . . . . . . . . . . . . . . .65
dreamweaver.getRecentFileList() . . . . . . . . . . . . . . . . . . . . . . . . . .66
dreamweaver.importXMLIntoTemplate(). . . . . . . . . . . . . . . . . . . .66
dreamweaver.newFromTemplate() . . . . . . . . . . . . . . . . . . . . . . . . .66
dreamweaver.openDocument() . . . . . . . . . . . . . . . . . . . . . . . . . . .66
dreamweaver.openDocumentFromSite() . . . . . . . . . . . . . . . . . . . .68
dreamweaver.openInFrame() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
dreamweaver.releaseDocument() . . . . . . . . . . . . . . . . . . . . . . . . . .68
dreamweaver.revertDocument() . . . . . . . . . . . . . . . . . . . . . . . . . . .69
dreamweaver.saveAll() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
dreamweaver.saveDocument() . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
dreamweaver.saveDocumentAs() . . . . . . . . . . . . . . . . . . . . . . . . . .70
dreamweaver.saveDocumentAsTemplate() . . . . . . . . . . . . . . . . . . .70
dreamweaver.saveFrameset(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
dreamweaver.saveFramesetAs() . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
Fonctions relatives à la recherche et au remplacement . . . . . . . . . . . . . .71
dreamweaver.findNext() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
dreamweaver.replace() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
dreamweaver.replaceAll() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
dreamweaver.setUpComplexFind() . . . . . . . . . . . . . . . . . . . . . . . .72
dreamweaver.setUpComplexFindReplace() . . . . . . . . . . . . . . . . . .73
dreamweaver.setUpFind(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
dreamweaver.setUpFindReplace(). . . . . . . . . . . . . . . . . . . . . . . . . .74
dreamweaver.showFindDialog() . . . . . . . . . . . . . . . . . . . . . . . . . . .75
dreamweaver.showFindReplaceDialog() . . . . . . . . . . . . . . . . . . . . .76
Fonctions relatives aux cadres et aux jeux de cadres . . . . . . . . . . . . . . . .76
dom.getFrameNames(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
dom.splitFrame() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
Fonctions de modification générales . . . . . . . . . . . . . . . . . . . . . . . . . . .77
dom.applyCharacterMarkup() . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
Table des matières
5
000ExtendingDWU.book Page 6 Thursday, June 8, 2000 3:38 PM
dom.applyFontMarkup() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
dom.deleteSelection(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
dom.editAttribute() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
dom.exitBlock() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
dom.getFontMarkup() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
dom.getLinkHref() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
dom.getLinkTarget() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
dom.getListTag() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
dom.getTextAlignment() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
dom.getTextFormat() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
dom.hasCharacterMarkup(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
dom.indent() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
dom.insertHTML() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
dom.insertObject() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
dom.insertText() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
dom.newBlock() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
dom.outdent() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
dom.removeCharacterMarkup(). . . . . . . . . . . . . . . . . . . . . . . . . . .83
dom.removeFontMarkup(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
dom.removeLink() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
dom.resizeSelection() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
dom.setAttributeWithErrorChecking() . . . . . . . . . . . . . . . . . . . . .84
dom.setLinkHref(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
dom.setLinkTarget() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
dom.setListBoxKind() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
dom.showListPropertiesDialog() . . . . . . . . . . . . . . . . . . . . . . . . . .85
dom.setListTag() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
dom.setTextAlignment() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
dom.setTextFieldKind() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
dom.showFontColorDialog() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
dreamweaver.deleteSelection() . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
dreamweaver.editFontList() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
dreamweaver.getFontList() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
dreamweaver.getKeyState(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
Fonctions globales relatives aux applications . . . . . . . . . . . . . . . . . . . . .88
dreamweaver.getShowDialogsOnInsert() . . . . . . . . . . . . . . . . . . . .88
dreamweaver.quitApplication() . . . . . . . . . . . . . . . . . . . . . . . . . . .88
dreamweaver.showAboutBox() . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
dreamweaver.showDynamicDataDialog(). . . . . . . . . . . . . . . . . . . .88
dreamweaver.showPreferencesDialog() . . . . . . . . . . . . . . . . . . . . . .89
6
Table des matières
000ExtendingDWU.book Page 7 Thursday, June 8, 2000 3:38 PM
Fonctions globales relatives aux documents. . . . . . . . . . . . . . . . . . . . . .90
dom.checkSpelling() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
dom.checkTargetBrowsers() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
dom.showPagePropertiesDialog(). . . . . . . . . . . . . . . . . . . . . . . . . .90
dreamweaver.getElementRef() . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
Fonctions relatives à l’historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91
dom.redo(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91
dom.undo() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
dreamweaver.getRedoText() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
dreamweaver.getUndoText(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
dreamweaver.playRecordedCommand() . . . . . . . . . . . . . . . . . . . . .93
dreamweaver.redo() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
dreamweaver.startRecording() . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
dreamweaver.stopRecording() . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
dreamweaver.undo(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
dreamweaver.historyPalette.clearSteps() . . . . . . . . . . . . . . . . . . . . .94
dreamweaver.historyPalette.copySteps() . . . . . . . . . . . . . . . . . . . . .94
dreamweaver.historyPalette.getSelectedSteps() . . . . . . . . . . . . . . . .94
dreamweaver.historyPalette.getStepCount() . . . . . . . . . . . . . . . . . .95
dreamweaver.historyPalette.getStepsAsJavaScript() . . . . . . . . . . . . .95
dreamweaver.historyPalette.getUndoState() . . . . . . . . . . . . . . . . . .96
dreamweaver.historyPalette.replaySteps() . . . . . . . . . . . . . . . . . . . .96
dreamweaver.historyPalette.saveAsCommand() . . . . . . . . . . . . . . .97
dreamweaver.historyPalette.setSelectedSteps() . . . . . . . . . . . . . . . .97
dreamweaver.historyPalette.getUndoState() . . . . . . . . . . . . . . . . . .97
Fonctions relatives aux styles HTML. . . . . . . . . . . . . . . . . . . . . . . . . . .98
dom.applyHTMLStyle() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
dreamweaver.htmlStylePalette.deleteSelectedStyle() . . . . . . . . . . . .98
dreamweaver.htmlStylePalette.duplicateSelectedStyle(). . . . . . . . . .98
dreamweaver.htmlStylePalette.editSelectedStyle(). . . . . . . . . . . . . .98
dreamweaver.htmlStylePalette.getSelectedStyle() . . . . . . . . . . . . . .99
dreamweaver.htmlStylePalette.getStyles() . . . . . . . . . . . . . . . . . . . .99
dreamweaver.htmlStylePalette.newStyle() . . . . . . . . . . . . . . . . . . . .99
dreamweaver.htmlStylePalette.setSelectedStyle(). . . . . . . . . . . . . . .99
Fonctions relatives au clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
dom.arrowDown() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
dom.arrowLeft(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
dom.arrowRight() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
dom.arrowUp() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
dom.backspaceKey() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
Table des matières
7
000ExtendingDWU.book Page 8 Thursday, June 8, 2000 3:38 PM
dom.deleteKey() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
dom.endOfDocument(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
dom.endOfLine(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
dom.nextParagraph() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
dom.nextWord() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
dom.pageDown(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
dom.pageUp() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
dom.previousParagraph() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
dom.previousWord() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
dom.startOfDocument() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105
dom.startOfLine() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105
Fonctions relatives aux calques et aux cartes graphiques. . . . . . . . . . . .105
dom.align() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105
dom.arrange() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
dom.makeSizesEqual() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
dom.moveSelectionBy() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
dom.resizeSelectionBy() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
dom.setLayerTag() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107
Fonctions relatives aux éléments de bibliothèque et aux modèles . . . . .108
dom.applyTemplate(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
dom.detachFromLibrary() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
dom.detachFromTemplate(). . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
dom.getAttachedTemplate(). . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
dom.getEditableRegionList() . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
dom.getIsLibraryDocument() . . . . . . . . . . . . . . . . . . . . . . . . . . .109
dom.getIsTemplateDocument() . . . . . . . . . . . . . . . . . . . . . . . . . .109
dom.getSelectedEditableRegion(). . . . . . . . . . . . . . . . . . . . . . . . .110
dom.insertLibraryItem() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
dom.markSelectionAsEditable() . . . . . . . . . . . . . . . . . . . . . . . . . .110
dom.newEditableRegion() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
dom.removeEditableRegion(). . . . . . . . . . . . . . . . . . . . . . . . . . . .111
dom.updateCurrentPage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
dreamweaver.updatePages() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
dreamweaver.libraryPalette.deleteSelectedItem(). . . . . . . . . . . . . .112
dreamweaver.libraryPalette.getSelectedItem() . . . . . . . . . . . . . . . .112
dreamweaver.libraryPalette.newFromDocument() . . . . . . . . . . . .112
dreamweaver.libraryPalette.recreateFromDocument(). . . . . . . . . .112
dreamweaver.libraryPalette.renameSelectedItem() . . . . . . . . . . . .113
dreamweaver.templatePalette.deleteSelectedTemplate() . . . . . . . .113
dreamweaver.templatePalette.getSelectedTemplate(). . . . . . . . . . .113
8
Table des matières
000ExtendingDWU.book Page 9 Thursday, June 8, 2000 3:38 PM
dreamweaver.templatePalette.newBlankTemplate() . . . . . . . . . . .113
dreamweaver.templatePalette.renameSelectedTemplate() . . . . . . .114
Fonctions Live Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
dreamweaver.getLiveDataInitTags() . . . . . . . . . . . . . . . . . . . . . . .114
dreamweaver.getLiveDataMode() . . . . . . . . . . . . . . . . . . . . . . . . .114
dreamweaver.liveDataTranslate() . . . . . . . . . . . . . . . . . . . . . . . . .115
dreamweaver.setLiveDataError() . . . . . . . . . . . . . . . . . . . . . . . . .115
dreamweaver.setLiveDataMode() . . . . . . . . . . . . . . . . . . . . . . . . .116
dreamweaver.showLiveDataDialog() . . . . . . . . . . . . . . . . . . . . . .116
Fonctions relatives aux menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116
dreamweaver.getMenuNeedsUpdating(). . . . . . . . . . . . . . . . . . . .117
dreamweaver.notifyMenuUpdated(). . . . . . . . . . . . . . . . . . . . . . .117
dreamweaver.reloadMenus(). . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
Fonctions relatives aux chemins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
dreamweaver.getConfigurationPath() . . . . . . . . . . . . . . . . . . . . . .118
dreamweaver.getDocumentPath(). . . . . . . . . . . . . . . . . . . . . . . . .118
dreamweaver.getSiteRoot(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
dreamweaver.relativeToAbsoluteURL() . . . . . . . . . . . . . . . . . . . .119
Fonctions relatives à Quick Tag Editor . . . . . . . . . . . . . . . . . . . . . . . .120
dom.selectChild() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
dom.selectParent() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
dom.stripTag() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
dom.wrapTag() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
dreamweaver.showQuickTagEditor() . . . . . . . . . . . . . . . . . . . . . .121
Fonctions relatives à la sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
dom.getSelectedNode() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
dom.getSelection() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
dom.nodeToOffsets(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
dom.offsetsToNode() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
dom.selectAll(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
dom.selectTable(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
dom.setSelectedNode() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
dom.setSelection() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
dreamweaver.selectAll() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
Fonctions de comportement de serveur . . . . . . . . . . . . . . . . . . . . . . . .125
dreamweaver.serverBehaviorInspector.findAllServerBehaviors() . .126
dreamweaver.serverBehaviorInspector.getServerBehaviors() . . . . .126
dreamweaver.popupServerBehavior() . . . . . . . . . . . . . . . . . . . . . .126
Fonctions modèle de serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
dom.serverModel.getServerLanguage(). . . . . . . . . . . . . . . . . . . . .127
Table des matières
9
000ExtendingDWU.book Page 10 Thursday, June 8, 2000 3:38 PM
dom.serverModel.getServerName() . . . . . . . . . . . . . . . . . . . . . . .127
dom.serverModel.getServerVersion() . . . . . . . . . . . . . . . . . . . . . .128
Fonctions relatives aux sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
site.addLinkToExistingFile() . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
site.addLinkToNewFile() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
site.changeLinkSitewide() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
site.changeLink() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
site.checkIn() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
site.checkLinks() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130
site.checkOut() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130
site.checkTargetBrowsers() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130
site.defineSites() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
site.deleteSelection(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
site.locateInSite() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
site.findLinkSource() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
site.get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
site.getCheckOutUser() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
site.getCheckOutUserForFile(). . . . . . . . . . . . . . . . . . . . . . . . . . .132
site.getConnectionState() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
site.getCurrentSite(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
site.getFocus() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
site.getLinkVisibility() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
site.getSelection() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
site.getSites() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
site.invertSelection(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
site.makeEditable() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
site.makeNewDreamweaverFile() . . . . . . . . . . . . . . . . . . . . . . . . .135
site.makeNewFolder() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
site.newHomePage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
site.newSite() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
site.open() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
site.put() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
site.recreateCache() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
site.refresh() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
site.remoteIsValid() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
site.removeLink() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
site.renameSelection() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
site.saveAsImage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138
site.selectAll(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138
site.selectHomePage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138
10
Table des matières
000ExtendingDWU.book Page 11 Thursday, June 8, 2000 3:38 PM
site.selectNewer() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
site.setAsHomePage(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
site.setConnectionState() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
site.setCurrentSite() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
site.setFocus(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140
site.setLayout(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140
site.setLinkVisibility() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140
site.setSelection() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140
site.synchronize() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141
site.undoCheckOut() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141
site.viewAsRoot() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141
Fonctions de manipulation de chaînes. . . . . . . . . . . . . . . . . . . . . . . . .141
dreamweaver.getTokens() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141
dreamweaver.latin1ToNative() . . . . . . . . . . . . . . . . . . . . . . . . . . .142
dreamweaver.nativeToLatin1() . . . . . . . . . . . . . . . . . . . . . . . . . . .142
dreamweaver.scanSourceString() . . . . . . . . . . . . . . . . . . . . . . . . .144
Fonctions de modification des tableaux . . . . . . . . . . . . . . . . . . . . . . . .145
dom.convertWidthsToPercent() . . . . . . . . . . . . . . . . . . . . . . . . . .145
dom.convertWidthsToPixels() . . . . . . . . . . . . . . . . . . . . . . . . . . .145
dom.decreaseColspan() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
dom.decreaseRowspan(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146
dom.deleteTableColumn() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146
dom.deleteTableRow() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146
dom.doDeferredTableUpdate() . . . . . . . . . . . . . . . . . . . . . . . . . .146
dom.getTableExtent() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146
dom.increaseColspan(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
dom.increaseRowspan() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
dom.insertTableColumns() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
dom.insertTableRows() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
dom.mergeTableCells() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148
dom.removeAllTableHeights() . . . . . . . . . . . . . . . . . . . . . . . . . . .148
dom.removeAllTableWidths() . . . . . . . . . . . . . . . . . . . . . . . . . . .148
dom.setTableCellTag() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148
dom.setTableColumns(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
dom.setTableRows(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
dom.showInsertTableRowsOrColumnsDialog(). . . . . . . . . . . . . .149
dom.splitTableCell() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
Fonctions relatives aux scénarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
dreamweaver.timelineInspector.addBehavior() . . . . . . . . . . . . . . .150
dreamweaver.timelineInspector.addFrame() . . . . . . . . . . . . . . . . .150
Table des matières
11
000ExtendingDWU.book Page 12 Thursday, June 8, 2000 3:38 PM
dreamweaver.timelineInspector.addKeyframe() . . . . . . . . . . . . . .151
dreamweaver.timelineInspector.addObject(). . . . . . . . . . . . . . . . .151
dreamweaver.timelineInspector.addTimeline() . . . . . . . . . . . . . . .151
dreamweaver.timelineInspector.changeObject() . . . . . . . . . . . . . .151
dreamweaver.timelineInspector.getAutoplay() . . . . . . . . . . . . . . .152
dreamweaver.timelineInspector.getCurrentFrame() . . . . . . . . . . .152
dreamweaver.timelineInspector.getLoop() . . . . . . . . . . . . . . . . . .152
dreamweaver.timelineInspector.recordPathOfLayer() . . . . . . . . . .152
dreamweaver.timelineInspector.removeBehavior() . . . . . . . . . . . .152
dreamweaver.timelineInspector.removeFrame() . . . . . . . . . . . . . .153
dreamweaver.timelineInspector.removeKeyframe(). . . . . . . . . . . .153
dreamweaver.timelineInspector.removeObject() . . . . . . . . . . . . . .153
dreamweaver.timelineInspector.removeTimeline() . . . . . . . . . . . .153
dreamweaver.timelineInspector.renameTimeline() . . . . . . . . . . . .153
dreamweaver.timelineInspector.setAutoplay(). . . . . . . . . . . . . . . .154
dreamweaver.timelineInspector.setCurrentFrame(). . . . . . . . . . . .154
dreamweaver.timelineInspector.setLoop(). . . . . . . . . . . . . . . . . . .154
Fonctions à bascule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
dom.getEditNoFramesContent() . . . . . . . . . . . . . . . . . . . . . . . . .155
dom.getPreventLayerOverlaps() . . . . . . . . . . . . . . . . . . . . . . . . . .155
dom.getShowFrameBorders(). . . . . . . . . . . . . . . . . . . . . . . . . . . .155
dom.getShowGrid() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
dom.getShowHeadView() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
dom.getShowImageMaps() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
dom.getShowLayerBorders() . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
dom.getShowRulers(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
dom.getShowTableBorders() . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
dom.getShowTracingImage() . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
dom.getSnapToGrid() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
dom.setEditNoFramesContent() . . . . . . . . . . . . . . . . . . . . . . . . .157
dom.setPreventLayerOverlaps() . . . . . . . . . . . . . . . . . . . . . . . . . .158
dom.setShowFrameBorders() . . . . . . . . . . . . . . . . . . . . . . . . . . . .158
dom.setShowGrid() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158
dom.setShowHeadView(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158
dom.setShowImageMaps() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159
dom.setShowLayerBorders(). . . . . . . . . . . . . . . . . . . . . . . . . . . . .159
dom.setShowRulers() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159
dom.setShowTableBorders(). . . . . . . . . . . . . . . . . . . . . . . . . . . . .159
dom.setShowTracingImage() . . . . . . . . . . . . . . . . . . . . . . . . . . . .159
dom.setSnapToGrid() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
12
Table des matières
000ExtendingDWU.book Page 13 Thursday, June 8, 2000 3:38 PM
dreamweaver.getHideAllFloaters() . . . . . . . . . . . . . . . . . . . . . . . .160
dreamweaver.getShowInvisibleElements() . . . . . . . . . . . . . . . . . .160
dreamweaver.getShowStatusBar() . . . . . . . . . . . . . . . . . . . . . . . . .160
dreamweaver.setHideAllFloaters() . . . . . . . . . . . . . . . . . . . . . . . .161
dreamweaver.setShowInvisibleElements() . . . . . . . . . . . . . . . . . . .161
dreamweaver.setShowStatusBar() . . . . . . . . . . . . . . . . . . . . . . . . .161
site.getShowDependents() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161
site.getShowHiddenFiles() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161
site.getShowPageTitles(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
site.getShowToolTips(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
site.setShowDependents() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
site.setShowHiddenFiles() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
site.setShowPageTitles() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163
site.setShowToolTips() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163
Fonctions relatives à la traduction (conversion) de données . . . . . . . . .163
dom.runTranslator() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163
dreamweaver.editLockedRegions() . . . . . . . . . . . . . . . . . . . . . . . .164
dreamweaver.getTranslatorList(). . . . . . . . . . . . . . . . . . . . . . . . . .164
dreamweaver.useTranslatedSource() . . . . . . . . . . . . . . . . . . . . . . .164
Fonctions relatives à la mise en forme visuelle . . . . . . . . . . . . . . . . . . .165
dom.getRulerOrigin() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
dom.getRulerUnits() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
dom.getTracingImageOpacity() . . . . . . . . . . . . . . . . . . . . . . . . . .166
dom.loadTracingImage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
dom.playAllPlugins() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
dom.playPlugin() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
dom.setRulerOrigin() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
dom.setRulerUnits() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
dom.setTracingImagePosition() . . . . . . . . . . . . . . . . . . . . . . . . . .167
dom.setTracingImageOpacity() . . . . . . . . . . . . . . . . . . . . . . . . . .167
dom.snapTracingImageToSelection() . . . . . . . . . . . . . . . . . . . . . .168
dom.stopAllPlugins() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
dom.stopPlugin(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
dreamweaver.arrangeFloatingPalettes() . . . . . . . . . . . . . . . . . . . . .168
dreamweaver.showGridSettingsDialog() . . . . . . . . . . . . . . . . . . . .169
Fonctions relatives aux fenêtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169
dom.getFocus() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169
dom.getWindowTitle() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169
dreamweaver.getActiveWindow() . . . . . . . . . . . . . . . . . . . . . . . . .170
dreamweaver.getDocumentList() . . . . . . . . . . . . . . . . . . . . . . . . .170
Table des matières
13
000ExtendingDWU.book Page 14 Thursday, June 8, 2000 3:38 PM
dreamweaver.getFocus() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170
dreamweaver.getFloaterVisibility() . . . . . . . . . . . . . . . . . . . . . . . .171
dreamweaver.setActiveWindow() . . . . . . . . . . . . . . . . . . . . . . . . .171
dreamweaver.setFloaterVisibility() . . . . . . . . . . . . . . . . . . . . . . . .171
dreamweaver.showProperties() . . . . . . . . . . . . . . . . . . . . . . . . . . .172
dreamweaver.toggleFloater(). . . . . . . . . . . . . . . . . . . . . . . . . . . . .172
Fonctions déconseillées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172
dreamweaver.getBehaviorEvent() . . . . . . . . . . . . . . . . . . . . . . . . .173
dreamweaver.getObjectRefs() . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
dreamweaver.getObjectTags(). . . . . . . . . . . . . . . . . . . . . . . . . . . .174
dreamweaver.getSelection() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
dreamweaver.nodeToOffsets() . . . . . . . . . . . . . . . . . . . . . . . . . . .176
dreamweaver.offsetsToNode() . . . . . . . . . . . . . . . . . . . . . . . . . . .176
dreamweaver.popupCommand() . . . . . . . . . . . . . . . . . . . . . . . . .176
dreamweaver.setSelection(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177
Activateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177
dom.canAlign() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177
dom.canApplyTemplate(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178
dom.canArrange() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178
dom.canClipCopyText() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178
dom.canClipPaste() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178
dom.canClipPasteText() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179
dom.canConvertLayersToTable() . . . . . . . . . . . . . . . . . . . . . . . . .179
dom.canConvertTablesToLayers() . . . . . . . . . . . . . . . . . . . . . . . .179
dom.canDecreaseColspan() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179
dom.canDecreaseRowspan() . . . . . . . . . . . . . . . . . . . . . . . . . . . .179
dom.canDeleteTableColumn(). . . . . . . . . . . . . . . . . . . . . . . . . . .180
dom.canDeleteTableRow(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180
dom.canEditNoFramesContent(). . . . . . . . . . . . . . . . . . . . . . . . .180
dom.canIncreaseColspan() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180
dom.canIncreaseRowspan() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181
dom.canInsertTableColumns(). . . . . . . . . . . . . . . . . . . . . . . . . . .181
dom.canInsertTableRows(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181
dom.canMakeNewEditableRegion() . . . . . . . . . . . . . . . . . . . . . .181
dom.canMarkSelectionAsEditable() . . . . . . . . . . . . . . . . . . . . . . .182
dom.canMergeTableCells() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182
dom.canPlayPlugin() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182
dom.canRedo() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182
dom.canRemoveEditableRegion() . . . . . . . . . . . . . . . . . . . . . . . .182
dom.canSelectTable() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
14
Table des matières
000ExtendingDWU.book Page 15 Thursday, June 8, 2000 3:38 PM
dom.canSetLinkHref() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
dom.canShowListPropertiesDialog() . . . . . . . . . . . . . . . . . . . . . .183
dom.canSplitFrame() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
dom.canSplitTableCell() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
dom.canStopPlugin() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
dom.canUndo() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
dom.hasTracingImage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
dreamweaver.canClipCopy() . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
dreamweaver.canClipCut(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
dreamweaver.canClipPaste(). . . . . . . . . . . . . . . . . . . . . . . . . . . . .185
dreamweaver.canDeleteSelection() . . . . . . . . . . . . . . . . . . . . . . . .185
dreamweaver.canExportCSS() . . . . . . . . . . . . . . . . . . . . . . . . . . .185
dreamweaver.canFindNext(). . . . . . . . . . . . . . . . . . . . . . . . . . . . .185
dreamweaver.canOpenInFrame() . . . . . . . . . . . . . . . . . . . . . . . . .186
dreamweaver.canPlayRecordedCommand() . . . . . . . . . . . . . . . . .186
dreamweaver.canRedo() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186
dreamweaver.canRevertDocument(). . . . . . . . . . . . . . . . . . . . . . .186
dreamweaver.canSaveAll() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
dreamweaver.canSaveDocument() . . . . . . . . . . . . . . . . . . . . . . . .187
dreamweaver.canSaveDocumentAsTemplate() . . . . . . . . . . . . . . .187
dreamweaver.canSaveFrameset(). . . . . . . . . . . . . . . . . . . . . . . . . .187
dreamweaver.canSaveFramesetAs() . . . . . . . . . . . . . . . . . . . . . . . .188
dreamweaver.canSelectAll() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188
dreamweaver.canShowFindDialog() . . . . . . . . . . . . . . . . . . . . . . .188
dreamweaver.canUndo(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188
dreamweaver.isRecording(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188
dreamweaver.htmlStylePalette.canEditSelection(). . . . . . . . . . . . .189
dreamweaver.timelineInspector.canAddFrame() . . . . . . . . . . . . . .189
dreamweaver.timelineInspector.canAddKeyFrame() . . . . . . . . . . .189
dreamweaver.timelineInspector.canChangeObject() . . . . . . . . . . .189
dreamweaver.timelineInspector.canRemoveBehavior() . . . . . . . . .190
dreamweaver.timelineInspector.canRemoveFrame() . . . . . . . . . . .190
dreamweaver.timelineInspector.canRemoveKeyFrame() . . . . . . . .190
dreamweaver.timelineInspector.canRemoveObject(). . . . . . . . . . .190
site.canAddLink() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
site.canChangeLink() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191
site.canCheckIn(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191
site.canCheckOut() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191
site.canConnect(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192
site.canFindLinkSource() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192
Table des matières
15
000ExtendingDWU.book Page 16 Thursday, June 8, 2000 3:38 PM
site.canGet() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192
site.canLocateInSite(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192
site.canMakeEditable(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193
site.canMakeNewFileOrFolder() . . . . . . . . . . . . . . . . . . . . . . . . .193
site.canOpen() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193
site.canPut(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193
site.canRecreateCache() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
site.canRefresh(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
site.canRemoveLink() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
site.canSetLayout(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
site.canSelectNewer() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195
site.canShowPageTitles() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195
site.canSynchronize() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195
site.canUndoCheckOut(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195
site.canViewAsRoot(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196
API d’E/S de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Vérification de l’installation de DWfile . . . . . . . . . . . . . . . . . . . . . . . .197
API d’E/S de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
DWfile.copy() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
DWfile.createFolder() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
DWfile.exists() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199
DWfile.getAttributes() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199
DWfile.getModificationDate(). . . . . . . . . . . . . . . . . . . . . . . . . . .200
DWfile.listFolder(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200
DWfile.read(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201
DWfile.remove() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201
DWfile.write() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202
API Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Fonctionnement de Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . .203
API JavaScript Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204
MMNotes.open(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204
MMNotes.close(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204
MMNotes.set() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205
MMNotes.remove() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205
MMNotes.get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205
MMNotes.getKeyCount() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205
MMNotes.getKeys() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206
MMNotes.getSiteRootForFile() . . . . . . . . . . . . . . . . . . . . . . . . . .206
MMNotes.getVersionNum() . . . . . . . . . . . . . . . . . . . . . . . . . . . .206
16
Table des matières
000ExtendingDWU.book Page 17 Thursday, June 8, 2000 3:38 PM
MMNotes.getVersionName(). . . . . . . . . . . . . . . . . . . . . . . . . . . .206
MMNotes.filePathToLocalURL() . . . . . . . . . . . . . . . . . . . . . . . .207
MMNotes.localURLToFilePath() . . . . . . . . . . . . . . . . . . . . . . . . .207
API C Design Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
FileHandle OpenNotesFile() . . . . . . . . . . . . . . . . . . . . . . . . . . . .208
void CloseNotesFile(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208
BOOL SetNote() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208
BOOL RemoveNote() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
int GetNoteLength() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
BOOL GetNote() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
int GetNotesKeyCount() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210
BOOL GetNotesKeys() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210
BOOL GetSiteRootForFile() . . . . . . . . . . . . . . . . . . . . . . . . . . . .211
BOOL GetVersionNum() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211
BOOL GetVersionName() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211
BOOL FilePathToLocalURL(). . . . . . . . . . . . . . . . . . . . . . . . . . .212
BOOL LocalURLToFilePath() . . . . . . . . . . . . . . . . . . . . . . . . . . .212
API d’intégration de Fireworks . . . . . . . . . . . . . . . . . 213
API d’intégration de Fireworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213
FWLaunch.bringDWToFront() . . . . . . . . . . . . . . . . . . . . . . . . . .213
FWLaunch.bringFWToFront() . . . . . . . . . . . . . . . . . . . . . . . . . .213
FWLaunch.execJsInFireworks() . . . . . . . . . . . . . . . . . . . . . . . . . .214
FWLaunch.getJsResponse() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214
FWLaunch.mayLaunchFireworks() . . . . . . . . . . . . . . . . . . . . . . .215
FWLaunch.optimizeInFireworks() . . . . . . . . . . . . . . . . . . . . . . . .215
FWLaunch.validateFireworks() . . . . . . . . . . . . . . . . . . . . . . . . . .216
Exemple simple d’intégration de Fireworks . . . . . . . . . . . . . . . . . . . . .217
API HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
API HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219
MMHttp.clearTemp() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220
MMHttp.getFile() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220
MMHttp.getFileCallback() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222
MMHttp.getText() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223
MMHttp.getTextCallback(). . . . . . . . . . . . . . . . . . . . . . . . . . . . .223
MMHttp.postText() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .224
MMHttp.postTextCallback() . . . . . . . . . . . . . . . . . . . . . . . . . . . .224
Table des matières
17
000ExtendingDWU.book Page 18 Thursday, June 8, 2000 3:38 PM
API de base de données . . . . . . . . . . . . . . . . . . . . . . 225
Fonctions de l'API de base de données . . . . . . . . . . . . . . . . . . . . . . . .226
MMDB.getColumnAndTypeList() . . . . . . . . . . . . . . . . . . . . . . .227
MMDB.getColumnList() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227
MMDB.getColumnsOfTable() . . . . . . . . . . . . . . . . . . . . . . . . . .227
MMDB.getConnectionList() . . . . . . . . . . . . . . . . . . . . . . . . . . . .228
MMDB.getConnectionName() . . . . . . . . . . . . . . . . . . . . . . . . . .228
MMDB.getConnectionString() . . . . . . . . . . . . . . . . . . . . . . . . . .229
MMDB.getDriverName() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
MMDB.getPassword() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230
MMDB.getRuntimeConnectionType() . . . . . . . . . . . . . . . . . . . .230
MMDB.getSPColumnList() . . . . . . . . . . . . . . . . . . . . . . . . . . . .230
MMDB.getSPColumnListNamedParams() . . . . . . . . . . . . . . . . .231
MMDB.getSPParamsAsString() . . . . . . . . . . . . . . . . . . . . . . . . . .232
MMDB.getTables() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
MMDB.getUserName(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
MMDB.showConnectionMgrDialog() . . . . . . . . . . . . . . . . . . . .233
MMDB.showResultset() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234
MMDB.showSPResultset() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234
MMDB.showSPResultsetNamedParams() . . . . . . . . . . . . . . . . . .235
Extensions C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237
API d’extension C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239
typedef struct JSContext JSContext . . . . . . . . . . . . . . . . . . . . . . .239
typedef struct JSObject JSObject . . . . . . . . . . . . . . . . . . . . . . . . .239
typedef struct jsval jsval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240
typedef enum { JS_FALSE = 0, JS_TRUE = 1 } JSBool . . . . . . . .240
typedef JSBool (*JSNative)(JSContext *cx, JSObject *obj,
unsigned int argc, jsval *argv, jsval *rval) . . . . . . . . . . . . . . . . . . .240
JSBool JS_DefineFunction() . . . . . . . . . . . . . . . . . . . . . . . . . . . .240
char *JS_ValueToString() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241
JSBool JS_ValueToInteger() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241
JSBool JS_ValueToDouble() . . . . . . . . . . . . . . . . . . . . . . . . . . . .241
JSBool JS_ValueToBoolean() . . . . . . . . . . . . . . . . . . . . . . . . . . . .242
JSBool JS_ValueToObject() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242
JSBool JS_StringToValue(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242
JSBool JS_DoubleToValue() . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
JSBool JS_IntegerToValue() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
JSBool JS_BooleanToValue() . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
JSBool JS_ObjectToValue() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
18
Table des matières
000ExtendingDWU.book Page 19 Thursday, June 8, 2000 3:38 PM
char *JS_ObjectType() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244
JSObject *JS_NewArrayObject() . . . . . . . . . . . . . . . . . . . . . . . . .244
long JS_GetArrayLength() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244
JSBool JS_GetElement() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244
JSBool JS_SetElement() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
JSBool JS_ExecuteScript() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
JSBool JS_ReportError() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246
Appel d’une fonction C à partir de JavaScript . . . . . . . . . . . . . . .246
Objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Fonctionnement des fichiers d’objet . . . . . . . . . . . . . . . . . . . . . . . . . .249
API d’objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250
displayHelp() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250
objectTag(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251
windowDimensions(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251
Ajout d’objets à la palette d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . .252
Ajout d’objets au menu Insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . .252
Commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Fonctionnement des commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . .253
API de commande. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
canAcceptCommand() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255
commandButtons() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255
receiveArguments() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255
windowDimensions(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256
Exemple de commande simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256
Ajout de commandes au menu Commandes . . . . . . . . . . . . . . . . . . . .258
Commandes de menu . . . . . . . . . . . . . . . . . . . . . . . . 259
Fonctionnement des commandes de menu . . . . . . . . . . . . . . . . . . . . .259
API de commande de menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261
canAcceptCommand() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261
commandButtons() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261
getDynamicContent() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262
isCommandChecked() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262
receiveArguments() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262
setMenuText() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263
windowDimensions(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263
Exemple de commande de menu simple . . . . . . . . . . . . . . . . . . . . . . .264
Exemple de menu dynamique simple . . . . . . . . . . . . . . . . . . . . . . . . .266
Table des matières
19
000ExtendingDWU.book Page 20 Thursday, June 8, 2000 3:38 PM
Inspecteurs de propriétés . . . . . . . . . . . . . . . . . . . . . 269
Fonctionnement des fichiers d’inspecteur de propriétés . . . . . . . . . . . .270
API d’inspecteur de propriétés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271
canInspectSelection() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271
displayHelp() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272
inspectSelection(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272
Exemple d’inspecteur de propriétés simple . . . . . . . . . . . . . . . . . . . . .273
Palettes flottantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275
Fonctionnement des fichiers de palette flottante . . . . . . . . . . . . . . . . .275
API de palette flottante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277
documentEdited() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277
selectionChanged() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278
initialPosition() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279
initialTabs() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279
A propos des performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280
Exemple de palette flottante simple . . . . . . . . . . . . . . . . . . . . . . . . . . .281
Comportements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Fonctionnement des comportements. . . . . . . . . . . . . . . . . . . . . . . . . .284
Insertion de plusieurs fonctions dans le fichier de l’utilisateur . . .285
Procédure à suivre lorsqu’une action exige une valeur renvoyée . .285
API de comportement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286
applyBehavior() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286
behaviorFunction() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287
canAcceptBehavior() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288
displayHelp() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .289
deleteBehavior() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .289
identifyBehaviorArguments() . . . . . . . . . . . . . . . . . . . . . . . . . . . .289
inspectBehavior() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291
windowDimensions(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .292
Exemple de comportement simple . . . . . . . . . . . . . . . . . . . . . . . . . . .293
Traducteurs de données . . . . . . . . . . . . . . . . . . . . . . .297
Fonctionnement des traducteurs de données . . . . . . . . . . . . . . . . . . . .298
API de traduction de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
getTranslatorInfo() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
translateMarkup() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
liveDataTranslateMarkup function() . . . . . . . . . . . . . . . . . . . . . .301
Spécification du type de traducteur à utiliser . . . . . . . . . . . . . . . . . . . .302
Ajout d'un attribut traduit à une balise . . . . . . . . . . . . . . . . . . . . . . . .302
20
Table des matières
000ExtendingDWU.book Page 21 Thursday, June 8, 2000 3:38 PM
Traduction simultanée de plusieurs attributs . . . . . . . . . . . . . . . .303
Exemple simple de traducteur d'attribut . . . . . . . . . . . . . . . . . . .303
Inspection des attributs traduits . . . . . . . . . . . . . . . . . . . . . . . . . .306
Verrouillage de balises ou de blocs de code traduits . . . . . . . . . . . . . . .307
Exemple simple de traducteur de bloc/balise . . . . . . . . . . . . . . . .309
Création d'un inspecteur de propriétés pour le contenu
verrouillé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .313
Recherche de bogues dans un traducteur . . . . . . . . . . . . . . . . . . . . . . .315
Modèles de serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Fonctions API des modèles de serveur . . . . . . . . . . . . . . . . . . . . . . . . .317
getFileExtensions(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317
getServerLanguages() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318
getVersionArray() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318
Sources de données . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Fonctionnement des sources de données . . . . . . . . . . . . . . . . . . . . . . .319
API de source de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322
addDynamicSource() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322
deleteDynamicSource() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322
findDynamicSources() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .323
generateDynamicDataRef() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .323
generateDynamicSourceBindings() . . . . . . . . . . . . . . . . . . . . . . .323
inspectDynamicDataRef() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324
Mise en forme des données. . . . . . . . . . . . . . . . . . . 325
Organisation de la mise en forme des données. . . . . . . . . . . . . . . . . . .326
Fichier Formats.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326
Menu plus (+) de la boîte de dialogue Modifier la liste
de formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327
Mise en application des fonctions de mise en forme des données. . . . .328
API de mise en forme de données . . . . . . . . . . . . . . . . . . . . . . . . . . . .329
applyFormat() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329
applyFormatDefinition() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329
deleteFormat() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330
formatDynamicDataRef() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330
inspectFormatDefinition() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331
Table des matières
21
000ExtendingDWU.book Page 22 Thursday, June 8, 2000 3:38 PM
Comportements de serveur . . . . . . . . . . . . . . . . . . . 333
Répertoire ServerBehaviors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333
Objet JavaScript de comportement de serveur . . . . . . . . . . . . . . . . . . .334
Comment appeler les fonctions API de comportement de serveur . . . .335
API de comportement de serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . .338
analyzeServerBehavior() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338
applyServerBehavior() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339
canApplyServerBehavior() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340
copyServerBehavior() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340
deleteServerBehavior() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341
findServerBehaviors() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341
inspectServerBehavior() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341
pasteServerBehavior(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342
Exemple de comportement de serveur . . . . . . . . . . . . . . . . . . . . . . . . .342
22
Table des matières
000ExtendingDWU.book Page 23 Thursday, June 8, 2000 3:38 PM
1
CHAPITRE 1
Extension de Dreamweaver Présentation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Si vous êtes un programmeur confirmé, vous pouvez personnaliser (ou étendre)
Dreamweaver de plusieurs manières à l’aide des langages HTML, JavaScript et C.
Vous pouvez écrire vos propres objets, actions, commandes, inspecteurs de
propriétés, palettes flottantes, traducteurs de données et bibliothèques C à appeler
à partir du code JavaScript. Pour effectuer ces tâches, vous devez parfaitement
maîtriser JavaScript et les différents éléments HTML. La connaissance du
langage C n’est nécessaire que si vous souhaitez utiliser une fonctionnalité qui ne
figure pas dans l’API JavaScript de Dreamweaver (voir les chapitres 3 ou les
chapitres 4 à 8 sur les API auxiliaires).
Le présent manuel décrit le DOM (Document Object Model, Modèle Objet de
Document) pris en charge par Dreamweaver, l’API JavaScript de Dreamweaver
(fonctions JavaScript personnalisées intégrées à Dreamweaver et pouvant être
utilisées dans n’importe quel fichier d’objet, d’action, de commande, d’inspecteur
de propriétés, de palette flottante ou de fichier de traduction de données). Il décrit
également les API spécifiques à chaque type de fichier, les API ajoutés avec
Dreamweaver UltraDev et fournit plusieurs exemples de code accompagnés de
commentaires.
Tout au long de ce manuel, nous désignerons par le terme extension tout fichier
d’objet, d’action, de commande, d’inspecteur de propriétés, de palette flottante et
de traduction de données.
23
000ExtendingDWU.book Page 24 Thursday, June 8, 2000 3:38 PM
Conditions préalables
Du fait que les extensions Dreamweaver doivent être écrites en JavaScript, ce
manuel suppose que les lecteurs sont familiarisés avec la syntaxe et les concepts de
base de ce langage, tels que les fonctions, variables, instructions, opérateurs,
expressions conditionnelles et boucles. Ce manuel n’a pas pour objectif
d’enseigner la programmation en général, ni le langage JavaScript en particulier.
Si votre expérience en programmation JavaScript est limitée, mais que vous en
maîtrisez suffisamment la syntaxe, nous vous recommandons, pour vous
familiariser avec l’extensibilité de Dreamweaver, de commencer par les objets.
Lisez tout d’abord le chapitre « Le Modèle Objet de Document (DOM) » à la
page 25, puis reportez-vous à la section « Extensions C » à la page 237 pour plus
d’informations.
Si vous souhaitez personnaliser Dreamweaver, nous vous recommandons d’avoir à
portée de main un manuel de référence JavaScript, pour le cas où vous auriez des
doutes sur la syntaxe à utiliser (si, par exemple, vous ne vous souvenez plus si vous
devez écrire substring() ou subString()). Javascript Bible de Danny Goodman (IDG),
JavaScript : The Definitive Guide de David Flanagan (O’Reilly) et Pure JavaScript
de R. Allen Wyke, Jason D. Gilliam et Charlton Ting (Sams) sont des ouvrages de
référence utiles. Vous trouverez également des informations de référence gratuites
sur le site Web DevEdge Online de NetScape, à l’adresse suivante : http://
developer.netscape.com:80/docs/manuals/javascript.html.
Errata
Le code de Dreamweaver UltraDev n’était pas achevé lors de la rédaction de la
présente documentation. Par conséquent, il est possible qu’il existe quelques
différences entre l’implémentation finale de l’API JavaScript de Dreamweaver
UltraDev et les explications fournies dans ce manuel. Vous trouverez la liste des
problèmes connus à la section Extensibility (Extension) du site Web du support
technique de Dreamweaver, à l’adresse suivante :
http://www.macromedia.com/support/dreamweaver/extend.html.
24
Chapitre 1
000ExtendingDWU.book Page 25 Thursday, June 8, 2000 3:38 PM
2
CHAPITRE 2
Le Modèle Objet de Document (DOM)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les documents HTML sont constitués d’une arborescence de balises qui reflète
leur structure. La racine de l’arborescence correspond à la balise HTML. Les deux
branches principales de l’arbre sont HEAD et BODY. Les ramifications de HEAD sont
TITLE, STYLE, SCRIPT, ISINDEX, BASE, META et LINK. Les ramifications de BODY
comprennent des en-têtes (H1, H2, etc.), des éléments de niveau bloc (P, DIV, FORM,
etc.), des éléments de niveau texte (FONT, BR, IMG, etc.) et l’élément ADDRESS. Les
éléments émergeant des ramifications correspondent à des attributs tels que
WIDTH, HEIGHT, ALT et HREF.
Un Modèle Objet de Document, ou DOM (Document Object Model),
correspond également à une arborescence définissant la structure du document.
Toutefois, le DOM définit cette structure en termes d’objets et de propriétés et
non en termes de balises et d’attributs.
La racine de l’arborescence DOM est le document lui-même, l’objet HTML
constitue le tronc, et les autres objets du document se ramifient à partir de l’objet
HTML, à l’instar des balises et des attributs HTML.
Modèle Objet de Document dans
Dreamweaver
Le DOM d’un navigateur détermine le fonctionnement du code JavaScript d’un
document HTML dans ce navigateur. De la même manière, le DOM de
Dreamweaver détermine la façon dont le code JavaScript des extensions
fonctionne dans Dreamweaver.
25
000ExtendingDWU.book Page 26 Thursday, June 8, 2000 3:38 PM
Le DOM de Dreamweaver associe un sous-ensemble du DOM de Netscape
Navigator 4.0 à un sous-ensemble du DOM Niveau 1 du W3C (World Wide
Web Consortium). Grâce à l’incorporation du DOM Niveau 1, toutes les parties
d’une pages HTML, y compris les balises (que le W3C appelle éléments), les
commentaires et le texte, deviennent un objet.
Vous pouvez référencer les objets par leur index (document.forms[3].elements[1]) ou
par leur nom (document.myForm.myButton). Les objets ayant le même nom forment
un tableau. Vous pouvez accéder à un objet particulier du groupe à l’aide de son
index (par exemple, le premier bouton radio dont le nom est myRadioGroup dans
myForm serait référencé par document.myForm.myRadioGroup[0]).
Le tableau suivant donne une vue d’ensemble des propriétés, des méthodes et des
événements pris en charge par chaque objet ; ces derniers sont décrits de façon
plus détaillée dans des ouvrages tels que JavaScript: The Definitive Guide
(O’Reilly). Des informations complémentaires sur les propriétés et les méthodes
définies par le W3C, qui font l’objet d’une documentation tierce moins complète,
figurent à la suite de ce tableau. Les propriétés en lecture seule sont marquées
d’une puce (•).
26
Chapitre 2
Objet
Propriétés
Méthodes
Evénements
window
document •
navigator •
innerWidth •
innerHeight •
screenX •
screenY •
alert()
confirm()
escape()
unescape()
close()
setTimeout()
clearTimeout()
setInterval()
clearInterval()
resizeTo()
onResize
navigator
platform •
Aucun
Aucun
000ExtendingDWU.book Page 27 Thursday, June 8, 2000 3:38 PM
Objet
Propriétés
Méthodes
Evénements
document
forms • (tableau
getElementsByTagNa onLoad
d’objets form)
me()
images • (tableau
hasChildNodes()
d’objets image)
layers • (un tableau
d’objets LAYER,
ILAYER, et d’objets DIV
et SPAN à
positionnement
absolu)
child objects by name •
nodeType •
parentNode •
childNodes •
documentElement •
body •
URL •
parentWindow •
toutes les balises/
tous les éléments
nodeType •
parentNode •
childNodes •
tagName •
attributes by name
innerHTML
outerHTML
getAttribute()
setAttribute()
removeAttribute()
getElementsByTagNa
me()
hasChildNodes()
form
En complément des
propriétés disponibles
pour toutes les
balises :
elements • (tableau
d’objets button,
checkbox, password,
radio, reset, select,
submit, text, file,
hidden, image et
textarea)
child objects by name •
Uniquement les
méthodes
disponibles pour
toutes les balises.
Aucun
layer
En complément des
propriétés disponibles
pour toutes les
balises :
visibility
left
top
width
height
zIndex
Uniquement les
méthodes
disponibles pour
toutes les balises.
Aucun
Le Modèle Objet de Document (DOM)
27
000ExtendingDWU.book Page 28 Thursday, June 8, 2000 3:38 PM
28
Chapitre 2
Objet
Propriétés
Méthodes
Evénements
image
En complément des
propriétés disponibles
pour toutes les
balises :
src
Uniquement les
méthodes
disponibles pour
toutes les balises.
onMouseOver
onMouseOut
onMouseDown
onMouseUp
button
reset
submit
En complément des
propriétés disponibles
pour toutes les
balises :
form •
En complément des
méthodes
disponibles pour
toutes les balises :
blur()
focus()
onClick
checkbox
radio
En complément des
propriétés disponibles
pour toutes les
balises :
checked
form •
En complément des
méthodes
disponibles pour
toutes les balises :
blur()
focus()
onClick
password
text
file
hidden
image (champ)
textarea
En complément des
propriétés disponibles
pour toutes les
balises :
form •
value
En complément des
méthodes
disponibles pour
toutes les balises :
blur()
focus()
select()
onBlur
onFocus
select
En complément des
propriétés disponibles
pour toutes les
balises :
form •
options • (tableau
d’objets option)
selectedIndex
En complément des
méthodes
disponibles pour
toutes les balises :
blur() (Windows
uniquement)
focus() (Windows
uniquement)
onBlur (Windows
uniquement)
onChange
onFocus (Windows
uniquement)
option
En complément des
propriétés disponibles
pour toutes les
balises :
text
Uniquement les
méthodes
disponibles pour
toutes les balises.
Aucun
array
boolean
date
function
math
number
object
string
regexp
Correspond à
Netscape 4
Correspond à
Netscape 4
Aucun
000ExtendingDWU.book Page 29 Thursday, June 8, 2000 3:38 PM
Objet
Propriétés
Méthodes
Evénements
text
nodeType •
parentNode •
childNodes •
data
hasChildNodes()
Aucun
comment
nodeType •
parentNode •
childNodes •
data
hasChildNodes()
Aucun
nodelist
length •
item()
Aucun
NamedNodeMap
length •
item()
Aucun
L’objet dreamweaver et ses propriétés
En plus des objets standards tels qu’ils sont définis par les navigateurs et le W3C,
Dreamweaver implémente deux objets personnalisés : dreamweaver et site. L’objet
dreamweaver possède deux propriétés en lecture seule qui lui sont associées :
appName et appVersion.
appName prend toujours la valeur "Dreamweaver". appVersion prend une valeur ayant
le format "versionNumber [languageCode] (platform)". Par exemple, la valeur de la
propriété appVersion pour la version Windows suédoise de Dreamweaver 3 serait
"3.0 [se] (Win32)" ; pour la version Macintosh anglaise, cette valeur serait "3.0 [en]
(MacPPC)".
Les propriétés appName et appVersion ont été implémentées dans Dreamweaver 3 et
elles ne sont pas disponibles dans les versions antérieures de Dreamweaver. Pour
déterminer si la version de Dreamweaver est 3 ou ultérieure, il suffit de vérifier
l’existence de la propriété appVersion ou appName. Pour déterminer la version
spécifique de Dreamweaver, vérifiez d’abord l’existence de la propriété appVersion,
puis le numéro de version. Par exemple :
if (dreamweaver.appVersion && dreamweaver.appVersion.indexOf(’3.01’) != -1){
// execute code
}
L’objet site n’a aucune propriété. Pour plus d’informations sur les méthodes des
objets dreamweaver et site, voir « API JavaScript de Dreamweaver » à la page 39.
Informations sur le DOM
Contrairement au DOM de Netscape, le DOM Niveau 1 n’a pas été documenté
dans des centaines d’ouvrages et de sites Web tiers. Aussi, vous trouverez dans le
présent document une description assez détaillée des propriétés et des méthodes
du DOM Niveau 1 ainsi que des valeurs qu’elles renvoient.
Le Modèle Objet de Document (DOM)
29
000ExtendingDWU.book Page 30 Thursday, June 8, 2000 3:38 PM
Le DOM Niveau 1 présente quatre constantes (appelées nodes) qui décrivent les
types d’objets constituant l’arborescence du document. Ces constantes, qui
correspondent généralement aux valeurs renvoyées de la propriété nodeType, sont
les suivantes :
Node.DOCUMENT_NODE
Node.ELEMENT_NODE
Node.COMMENT_NODE
Node.TEXT_NODE
Propriétés et méthodes de l’objet document
Le tableau ci-dessous répertorie les nouvelles propriétés et méthodes de l’objet
document dans Dreamweaver, ainsi que les valeurs renvoyées correspondantes
(accompagnées d’explications, si nécessaire). Les propriétés en lecture seule sont
marquées d’une puce (•).
30
Chapitre 2
Propriété ou méthode
Valeur renvoyée et explication
nodeType •
Node.DOCUMENT_NODE
parentNode •
null
parentWindow •
Objet JavaScript correspondant à la
fenêtre parente du document. (Cette
propriété n’est pas incluse dans le DOM
Niveau 1, mais elle est prise en charge par
IE 4.0.)
childNodes •
Une nodelist (liste de nœuds) contenant
tous les enfants immédiats de l’objet
document. En règle générale, le document
a un seul enfant : l’objet HTML.
documentElement •
Objet JavaScript correspondant à la balise
HTML. Cette propriété est une forme
courte permettant d’obtenir la valeur de
document.childNodes et d’extraire la balise
HTML de la nodelist.
body •
Objet JavaScript correspondant à la balise
BODY. Cette propriété est une forme
courte permettant d’appeler
document.documentElement.childNodes et
d’extraire la balise BODY de la nodelist.
Pour les documents de jeu de cadres, cette
propriété renvoie le nœud correspondant
au jeu de cadres situé le plus à l’extérieur.
URL •
L’URL de type file:// du document ou, si le
fichier n’a pas été enregistré, une chaîne
vide.
000ExtendingDWU.book Page 31 Thursday, June 8, 2000 3:38 PM
Propriété ou méthode
Valeur renvoyée et explication
getElementsByTagName(tagName)
Une nodelist pouvant être utilisée pour
parcourir les balises de type tagName (par
exemple, IMG, DIV, etc). Possède une
fonctionnalité similaire à la fonction
dreamweaver.getObjectTags().
Si l’argument tag est LAYER, la fonction
renvoie toutes les balises LAYER et ILAYER
et toutes les balises DIV et SPAN à
positionnement absolu.
Si l’argument tag est INPUT, la fonction
renvoie tous les éléments du formulaire.
(Pour que ce raccourci fonctionne
correctement, tous les noms de champ du
formulaire doivent commencer par une
lettre.)
hasChildNodes()
TRUE
Propriétés et méthodes des objets tag HTML
Chaque balise HTML est représentée par un objet JavaScript. Les balises sont
organisées selon une hiérarchie arborescente dans laquelle la balise x est parente de
la balise y si y est entièrement définie entre les balises de début et de fin de x (<x>le
contenu de x englobant <y>le contenu de y</y></x> ). Le tableau ci-dessous
répertorie les nouvelles propriétés et méthodes des objets tag dans Dreamweaver,
ainsi que leurs valeurs renvoyées (accompagnées d’explications, si nécessaire). Les
propriétés en lecture seule sont marquées d’une puce (•).
Propriété ou méthode
Valeur renvoyée et explication
nodeType •
Node.ELEMENT_NODE
parentNode •
Balise parente. S’il s’agit de la balise HTML,
alors c’est l’objet document qui est
renvoyé.
childNodes •
Une nodelist contenant tous les enfants
immédiats de la balise.
tagName •
Nom HTML de la balise, tel que IMG, A ou
BLINK. Cette valeur est toujours renvoyée
en lettres majuscules.
attrName
Chaîne de caractères contenant la valeur
de l’attribut de balise spécifié.
tag.attrName ne peut pas être utilisé si
attrName est un mot réservé du langage
JavaScript (par exemple, class). Dans ce
cas, utilisez plutôt getAttribute() et
setAttribute().
Le Modèle Objet de Document (DOM)
31
000ExtendingDWU.book Page 32 Thursday, June 8, 2000 3:38 PM
32
Chapitre 2
Propriété ou méthode
Valeur renvoyée et explication
innerHTML
Code source HTML contenu entre la balise
de début et la balise de fin. Par exemple,
dans le code <p><b>Hello</b>,
World!</p>, p.innerHTML
renvoie<b>Hello</b>, World!. Si vous
écrivez dans cette propriété,
l’arborescence DOM est immédiatement
mise à jour de façon à refléter la nouvelle
structure du document. (Cette propriété
n’est pas incluse dans le DOM Niveau 1,
mais elle est prise en charge par IE 4.0.)
outerHTML
Code source HTML de cette balise, y
compris la balise elle-même. Pour
l’exemple de code ci-dessus, p.outerHTML
renvoie <p><b>Hello</b>, World!</p>.
Si vous écrivez dans cette propriété,
l’arborescence DOM est immédiatement
mise à jour de façon à refléter la nouvelle
structure du document. (Cette propriété
n’est pas incluse dans le DOM Niveau 1,
mais elle est prise en charge par IE 4.0.)
getAttribute(attrName)
Valeur de l’attribut spécifié, s’il est spécifié
explicitement ; sinon, null.
getTranslatedAttribute(attrName)
Valeur traduite de l’attribut spécifié, ou la
même valeur que celle qui est renvoyée
par getAttribute() si la valeur de l’attribut
n’est pas traduite. (Cette propriété n’est
pas incluse dans le DOM Niveau 1 ; elle a
été ajoutée à Dreamweaver 3 pour
prendre en charge la traduction
d’attributs.)
setAttribute(attrName, attrValue)
Pas de valeur renvoyée. Affecte la valeur
spécifiée à l’attribut défini : par exemple,
img.setAttribute("src", "image/roses.gif").
removeAttribute(attrName)
Pas de valeur renvoyée. Supprime
l’attribut défini et sa valeur du code HTML
de la balise.
getElementsByTagName(tagName)
Une nodelist pouvant être utilisée pour
parcourir les balises enfants de type
tagName (par exemple, IMG, DIV, etc).
Si l’argument tag est LAYER, la fonction
renvoie toutes les balises LAYER et ILAYER
et toutes les balises DIV et SPAN à
positionnement absolu.
Si l’argument tag est INPUT, la fonction
renvoie tous les éléments du formulaire.
(Pour que ce raccourci fonctionne
correctement, tous les noms de champ du
formulaire doivent commencer par une
lettre.)
000ExtendingDWU.book Page 33 Thursday, June 8, 2000 3:38 PM
Propriété ou méthode
Valeur renvoyée et explication
hasChildNodes()
Valeur booléenne indiquant si la balise a
des enfants.
hasTranslatedAttributes()
Valeur booléenne indiquant si la balise a
des attributs traduits. (Cette propriété
n’est pas incluse dans le DOM Niveau 1 ;
elle a été ajoutée à Dreamweaver 3 pour
prendre en charge la traduction
d’attributs.)
Propriétés et méthodes des objets text
Chaque bloc de texte contigu dans un document HTML (par exemple, le texte
compris à l’intérieur d’une balise P) est représenté par un objet JavaScript. Les
objets text n’ont jamais d’enfants. Le tableau ci-dessous répertorie les nouvelles
propriétés et méthodes des objets text dans Dreamweaver, ainsi que les valeurs
renvoyées correspondantes (accompagnées d’explications, si nécessaire). Les
propriétés en lecture seule sont marquées d’une puce (•).
Propriété ou méthode
Valeur renvoyée et explication
nodeType •
Node.TEXT_NODE
parentNode •
Balise parente.
childNodes •
Une nodelist vide.
data
La chaîne de texte réelle. Les entités du
texte sont représentées par des caractères
uniques (par exemple, le texte Joseph
&amp; I est renvoyé sous la forme Joseph &
I).
hasChildNodes()
FALSE
Propriétés et méthodes des objets comment
Chaque commentaire HTML est représenté par un objet JavaScript. Le tableau cidessous répertorie les propriétés et méthodes des objets comment dans
Dreamweaver, ainsi que les valeurs renvoyées correspondantes (accompagnées
d’explications, si nécessaire). Les propriétés en lecture seule sont marquées d’une
puce (•).
Propriété ou méthode
Valeur renvoyée et explication
nodeType •
Node.COMMENT_NODE
parentNode •
Balise parente.
Le Modèle Objet de Document (DOM)
33
000ExtendingDWU.book Page 34 Thursday, June 8, 2000 3:38 PM
Propriété ou méthode
Valeur renvoyée et explication
childNodes •
Une nodelist vide.
data
Chaîne de texte comprise entre les
marqueurs de commentaires (<!-- et -->).
hasChildNodes()
FALSE
Commandes de l’arborescence
UltraDev ajoute deux nouvelles commandes à la balise select HTML : la
commande d’arborescence de base de données et celle de grille variable. La
première permet d’afficher les informations relatives à la base de données sous
forme de schémas, c’est à dire de tables et colonnes composant la base de données.
La commande de grille variable permet quant à elle d’afficher n’importe quelle
donnée tabulaire. Dans UltraDev, la boîte de dialogue Jeu d’enregistrements
avancée contient ces deux commandes.
Boîte de dialogue Jeu d’enregistrements avancée
Ajout d’une arborescence de base de données
Pour ajouter une commande d’arborescence de base de données dans une boîte de
dialogue, ajoutez le code HTML suivant à votre page :
<select name="DBTree" style="width:400px;height:110px"
type=mmdatabasetree connection=""></select>
La commande d’arborescence de base de données possède les attributs suivants :
34
Chapitre 2
000ExtendingDWU.book Page 35 Thursday, June 8, 2000 3:38 PM
name="DBTree"
: nom de la commande d’arborescence de base de données.
style="width:x;height:n" : taille de la commande. Vous pouvez préciser sa largeur et sa
hauteur en pixels.
: type de commande. La valeur mmdatabasetree indique que
cette balise doit être restituée sous forme d’arborescence de base de données et
qu’elle doit afficher le contenu de la connexion spécifié dans l’attribut
correspondant.
type=mmdatabasetree
: nom d’une connexion UltraDev, telle que définie
dans Connection Manager. Si l’attribut connection est vide, la commande sera
également vide.
connection="connectionName"
Toutes les options de balise placées à l’intérieur de la balise select sont ignorées.
Vous pouvez utiliser JavaScript pour modifier l’attribut connection et récupérer les
données sélectionnées dans l’arborescence. Vous pouvez également utiliser
DBTreeControl en tant qu’objet empaqueteur JavaScript pour la nouvelle balise.
L’implémentation se trouve dans le fichier DBTreeControlClass.js
(Configuration\Shared\UltraDev\Scripts).
Ajout d’une commande de grille variable
Pour ajouter une commande de grille variable à une boîte de dialogue, ajoutez le
code HTML suivant à votre page :
<select name="ParamList" style="width:515px;" type=mmparameterlist
columns="Name,SQL Data Type,Direction,Default Value,Run-time Value" size=6></select>
La commande de grille variable possède les attributs suivants :
name="ParamList"
style="width:x"
: nom de la commande de grille variable.
: largeur de la commande.
: type de commande. La valeur mmparameterlist indique que
cette balise doit être restituée sous forme de commande de grille variable.
type=mmparameterlist
indique le nom des colonnes, séparées par des
virgules. Chacune des colonnes devant posséder un nom, cet attribut indique à la
fois le nom et le nombre des colonnes de la commande. Le nombre des colonnes
doit être équivalent à celui des noms. Dans l’exemple précédent, l’attribut columns
est : columns="Name,SQL Data Type,Direction,Default Value,Run-time Value". Cette
spécification crée 5 colonnes : Nom, Type de données SQL, Direction, Valeur par
défaut et Valeur d’exécution.
columns="colName1", "colNamex"
size=n
: nombre de lignes visibles.
Le Modèle Objet de Document (DOM)
35
000ExtendingDWU.book Page 36 Thursday, June 8, 2000 3:38 PM
largeur de chaque colonne, séparées par des virgules. Si
aucune largeur n’est indiquée, les colonnes seront toutes de largeur identique. Il
est également possible de préciser les largeurs des premières colonnes sans rien
indiquer pour les colonnes restantes. Dans ce cas, ces dernières se partageront
l’espace laissé par les premières colonnes. Par exemple, supposons que vous
indiquez la balise select suivante :
columnWidth="x, ..." :
<select name="ParamList" style="width:500px;" type=mmparameterlist
columns="Name,SQL Data Type,Direction, Default Value,Run-time Value"
columnWidth="100,25,11," size=6></select>
Ce code créera une commande de grille variable large de 500 pixels. Il y a 5
colonnes : Nom, Type de données SQL, Direction, Valeur par défaut et Valeur
d’exécution. La colonne Nom a une largeur de 100 pixels, la colonne Type de
données SQL de 25 pixels et la colonne Direction de 11 pixels. Les deux dernières
colonnes ont donc chacune une largeur de 182 pixels. Les colonnes pour lesquelles
vous avez spécifié la largeur occupent au total 136 pixels et la longueur totale de la
commande est de 500. Les deux dernières colonnes se partagent donc l’espace
restant après le placement des trois premières, à savoir 500 - 136 = 364 (182 x 2).
Cette commande possède également un objet empaqueteur JavaScript servant à
accéder aux données de la commande et à les modifier. L’implémentation de cet
objet se trouve dans le fichier GGGridControlClass.js
(Configuration\Shared\MM\Scripts\Class\ ).
Fonctionnement de JavaScript dans les fichiers
d’extension
Lorsque Dreamweaver traite les fichiers d’extension, il compile tous les éléments
compris entre les balises SCRIPT et exécute le code situé dans les balises SCRIPT ne
faisant pas partie d’une déclaration de fonction (par exemple, l’initialisation des
variables globales). En outre, Dreamweawer lit, compile et exécute des scripts
situés dans des fichiers JavaScript externes spécifiés dans les attributs SRC des
balises SCRIPT.
Remarque : si le code JavaScript de vos fichiers d’extension contient la chaîne
‘</SCRIPT>’, l’interpréteur JavaScript le lit comme une balise SCRIPT de fermeture et signale
une erreur littérale de chaîne non terminée. Pour éviter ce problème, divisez la chaîne en
deux parties et concaténez-les de la façon suivante : ‘<’ + ‘/SCRIPT>’.
36
Chapitre 2
000ExtendingDWU.book Page 37 Thursday, June 8, 2000 3:38 PM
Dans les fichiers de commande et de comportement, Dreamweaver exécute le
code contenu dans le gestionnaire d’événements onLoad (s’il en existe un dans la
balise BODY) lorsque l’utilisateur choisit la commande ou l’action dans un menu.
Dans les fichiers d’objet, Dreamweaver exécute le code contenu dans le
gestionnaire d’événements onLoad dans la balise BODY si le corps du document
contient un formulaire. Dreamweaver ignore le gestionnaire onLoad de la balise
BODY dans les fichiers de traducteur de données, d’inspecteur de propriétés et de
palette flottante. Dans tous les fichiers d’extension, Dreamweaver exécute le code
contenu dans d’autres gestionnaires d’événements (par exemple, onBlur="alert(’This
is a required field.’)") lorsque l’utilisateur utilise les champs de formulaire auxquels ils
sont rattachés.
Les liens (balises a, dont celles incluant les URL JavaScript tels que
< a href="javascript:alert('hi')">) et les instructions document.write() ne sont pas prises
en charge. Les plug-ins (en permanence réglés sur play) sont pris en charge dans le
corps (BODY) des extensions, mais ce n’est pas le cas des mini-applications Java ni
des commandes ActiveX.
Exécution des scripts au démarrage ou à la fermeture
Dans Dreamweaver 3, si vous placez un fichier de commandes dans le dossier
Configuration/Startup, la commande s’exécute au démarrage de Dreamweaver.
Les commandes de démarrage se chargent avant le fichier menus.xml, avant les
fichiers du dossier ThirdPartyTags, et avant les autres commandes, objets,
comportements, inspecteurs, palettes flottantes ou traducteurs. Par conséquent,
vous pouvez utiliser les commandes de démarrage pour modifier le fichier
menus.xml ou d’autres fichiers d’extension. Vous pouvez également afficher des
avertissements ou inviter l’utilisateur à entrer des informations, mais vous ne
pouvez pas appeler la fonction dreamweaver.runCommand().
De même, si vous placez un fichier de commande dans le dossier Configuration/
Shutdown, la commande s’exécute à la fermeture de Dreamweaver. Vous pouvez
appeler la fonction « dreamweaver.runCommand() » à la page 54 à partir des
commandes de fermeture, afficher des avertissements ou inviter l’utilisateur à
entrer des informations, mais vous ne pouvez pas arrêter le processus de fermeture.
Pour plus d’informations sur les commandes, voir la section « Commandes » à la
page 253.
Le Modèle Objet de Document (DOM)
37
000ExtendingDWU.book Page 38 Thursday, June 8, 2000 3:38 PM
38
Chapitre 2
000ExtendingDWU.book Page 39 Thursday, June 8, 2000 3:38 PM
3
CHAPITRE 3
API JavaScript de Dreamweaver
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les objets, les propriétés et les méthodes décrites au chapitre Le modèle objet de
document (DOM) constituent une base solide pour étendre, ou personnaliser,
Dreamweaver. Toutefois, un certain nombre d’opérations propres aux
environnements de création de pages Web ne peuvent pas être effectuées à l’aide
des méthodes disponibles dans les DOM de Netscape, de Microsoft ou du W3C.
La sélection, qui fait partie intégrante de l’expérience de l’utilisateur dans ce type
d’environnement, en est l’exemple le plus flagrant. Le DOM Niveau 1 et les
DOM de navigateurs propriétaires n’abordent pas le sujet de la sélection, car dans
un navigateur, les utilisateurs n’ont la possibilité ni de sélectionner, ni de modifier
le contenu des fenêtres (hormis le contenu des champs de formulaires).
Pour permettre la création d’extensions Dreamweaver intéressantes et la
personnalisation des menus Dreamweaver, Dreamweaver propose aux
développeurs plus de 400 fonctions JavaScript en complément des méthodes de
DOM standard, ce qui représente une amélioration considérable par rapport à
Dreamweaver 2. En effet, il est à présent possible d’émuler en JavaScript presque
toutes les opérations que l’utilisateur peut effectuer dans Dreamweaver à l’aide des
menus, des palettes flottantes, des inspecteurs et des fenêtres de site ou de
document.
39
000ExtendingDWU.book Page 40 Thursday, June 8, 2000 3:38 PM
Description des objets de l’API
Toutes les fonctions personnalisées qui suivent sont des méthodes de l’objet
dreamweaver, de l’objet site ou de l’objet représentant le DOM d’un document. Les
méthodes appartenant à la dernière catégorie sont répertoriées ici sous la forme
dom.functionName(). Pour obtenir les résultats souhaités, vous devez commencer par
obtenir le DOM d’un document, puis appeler les fonctions en tant que méthodes
de ce DOM. En effet, il ne suffit pas de taper dom.functionName(). Exemple :
var currentDOM = dreamweaver.getDocumentDOM(’document’);
currentDOM.setSelection(100,200);
currentDOM.clipCopy();
var otherDOM = dreamweaver.openDocument(dreamweaver.getSiteRoot() + "html/
foo.htm");
otherDOM.endOfDocument();
otherDOM.clipPaste();
Sauf indication contraire, les méthodes de l’objet dom ne peuvent être appliquées
qu’à un document ouvert dans Dreamweaver ; si vous exécutez une fonction sur
un document qui n’est pas ouvert, Dreamweaver affiche un message d’erreur.
Lorsqu’une méthode de l’objet dom ne peut être appliquée qu’au document actif
ou à des documents fermés, cette caractéristique est indiquée dans sa description.
Dans Dreamweaver 3, dw est synonyme de dreamweaver. Par conséquent, toutes les
méthodes de l’objet dreamweaver peuvent être désignées par la notation suivante :
dw.functionName(). Cette notation est utilisée dans tous les exemples de code
apparaissant dans ce chapitre et dans les chapitres suivants.
A propos des activateurs
Dans Dreamweaver 3, chaque élément de menu est implémenté sous forme de
fonction JavaScript ; il est donc nécessaire de disposer d’un mécanisme JavaScript
permettant de déterminer quels éléments de menu doivent être activés. Ce
mécanisme consiste en une série de fonctions appelées activateurs.
Le rôle d’un activateur est de déterminer si la principale fonction qui lui est
associée peut être exécutée dans le contexte en cours. Par exemple, site.canGet()
détermine si Dreamweaver peut exécuter une opération Acquérir (site.get()).
Chaque spécification de fonction de l’API indique quel est l’activateur associé à la
fonction, le cas échéant. (Certaines fonctions ne possèdent pas d’activateur, soit
parce que l’élément de menu qui leur est associé est toujours activé, soit parce
qu’elles ne sont pas en rapport avec les menus). Vous trouverez à la fin du présent
chapitre la liste et la description des activateurs disponibles.
40
Chapitre 3
000ExtendingDWU.book Page 41 Thursday, June 8, 2000 3:38 PM
Organisation de ce chapitre
Les méthodes de l’API JavaScript de Dreamweaver sont regroupées par
fonctionnalité, puis classées par ordre alphabétique, d’abord par nom d’objet, puis
par nom de méthode. Les méthodes relatives à la création, l’application et la
suppression de styles CSS, par exemple, sont regroupées dans la catégorie
Fonctions relatives aux styles CSS ; à l’intérieur de cette catégorie, les méthodes de
l’objet dom sont répertoriées en premier, suivies des méthodes de l’objet
dreamweaver, puis des méthodes de l’objet dreamweaver.cssStylePalette. Les
arguments facultatifs sont indiqués entre accolades ({ }).
La fonction la plus importante
Presque toutes les fonctions relatives à la modification d’un DOM exigent que
vous indiquiez tout d’abord quel DOM vous souhaitez modifier. Vous utilisez
pour cela la fonction dreamweaver.getDocumentDOM(), qui est la plus importante de
toutes les fonctions de l’API.
dreamweaver.getDocumentDOM()
Disponibilité
2.0
Description
Permet d’accéder à l’arborescence des objets du document spécifié. Une fois celleci renvoyée à l’appelant, ce dernier peut la modifier pour changer le contenu du
document.
Arguments
sourceDoc
L’argument doit être "document", "parent", "parent.frames[number]",
"parent.frames[’frameName’]" ou une URL. document désigne le document actif
contenant la sélection en cours. parent désigne le jeu de cadres parent (si le
document sélectionné se trouve dans un cadre) et parent.frames[number] et
parent.frames[’frameName’] désignent un document figurant dans un cadre
spécifique du jeu de cadres contenant le document en cours. Si l’argument est une
URL relative, celle-ci est relative au fichier d’extension. Dans Dreamweaver 3,
l’argument sourceDoc, s’il n’est pas défini, prend par défaut la valeur document.
Remarque : si l’argument a pour valeur "document", l’appelant doit, pour pouvoir modifier
le document, être la fonction applyBehavior(), deleteBehavior(), objectTag() ou toute fonction
d’un fichier de commande ou d’inspecteur de propriétés.
Renvoie
Activateur
Exemple
Objet document JavaScript à la racine de l’arborescence.
Aucun.
Le segment de code suivant utilise la fonction dreamweaver.getDocumentDOM() pour
accéder à la couleur d’arrière-plan du document en cours :
var theDOM = dreamweaver.getDocumentDOM("document");
theDOM.body.bgcolor = "#000000";
API JavaScript de Dreamweaver
41
000ExtendingDWU.book Page 42 Thursday, June 8, 2000 3:38 PM
Fonctions relatives aux comportements
Ces fonctions vous permettent d’associer des comportements à un objet ou de les
en dissocier, d’identifier les comportements associés à un objet, d’obtenir des
informations sur un objet auquel est associé un comportement, etc. Les méthodes
de l’objet dreamweaver.behaviorInspector permettent de contrôler ou d’agir sur la
sélection dans l’inspecteur de comportements et non dans le document en cours.
dom.addBehavior()
Disponibilité
3.0
Description
Associe un nouveau couple événement/action (comportement) à l’élément
sélectionné. Cette fonction n’est valide que pour le document actif.
Arguments
event, action, {eventBasedIndex}
Le premier argument est le gestionnaire d’événements JavaScript à utiliser pour
associer le comportement à l’élément, par exemple, onClick, onMouseOver ou
onLoad.
Le second argument est l’appel de fonction qui serait renvoyé par applyBehavior()
si vous utilisiez l’inspecteur de comportements pour insérer l’action, par
exemple "MM_popupMsg(’Hello World’)".
Le troisième argument est la position à laquelle l’action doit être insérée.
est un index de référence zéro ; par conséquent, s’il existe déjà
deux actions associées à l’événement en question et que vous spécifiez
eventBasedIndex comme étant l’action 1, elle sera insérée et exécutée entre les
deux autres. Si vous ne définissez pas cet argument, l’action est insérée à la suite
des actions déjà associées à l’événement spécifié.
eventBasedIndex
Renvoie
Activateur
Aucune.
Aucun.
dom.getBehavior()
Disponibilité
3.0
Description
Obtient l’action qui se trouve à la position indiquée dans l’événement spécifié.
Cette fonction agit sur la sélection en cours et n’est valide que pour le document
actif.
Arguments
event, {eventBasedIndex}
Le premier argument est le gestionnaire d’événements JavaScript utilisé pour
associer l’action à l’élément, par exemple, onClick, onMouseOver ou onLoad.
Le second argument est la position de l’action à obtenir. Par exemple, si deux
actions sont associées à l’événement spécifié, 0 est la première et 1 la seconde. Si
cet argument n’est pas défini, toutes les actions associées à l’événement spécifié
sont renvoyées.
42
Chapitre 3
000ExtendingDWU.book Page 43 Thursday, June 8, 2000 3:38 PM
Renvoie
Chaîne représentant l’appel de fonction (par exemple
"MM_swapImage(’document.Image1’,’document.Image1’,’foo.gif’,’#933292969950’)" ) ou
tableau de chaînes, si vous n’avez pas défini l’argument eventBasedIndex.
Activateur
Aucun.
dom.reapplyBehaviors()
Disponibilité
3.0
Description
Vérifie si les fonctions associées aux appels de comportement sur le nœud spécifié
sont présentes dans la section HEAD du document, et dans le cas contraire, les y
insère.
Arguments
{elementNode}
L’argument est un nœud d’élément du document en cours. Si cet argument n’est
pas défini, Dreamweaver recherche les appels de comportement orphelins sur tous
les nœuds d’élément du document
Renvoie
Activateur
Aucune.
Aucun.
dom.removeBehavior()
Disponibilité
3.0
Description
Supprime l’action qui se trouve à la position indiquée dans l’événement spécifié.
Cette fonction agit sur la sélection en cours et n’est valide que pour le document
actif.
Arguments
event, {eventBasedIndex}
Le premier argument est le gestionnaire d’événements utilisé pour associer
l’action à l’élément, par exemple, onClick, onMouseOver ou onLoad. Si cet
argument n’est pas défini, toutes les actions sont supprimées de l’élément.
Le second argument est la position de l’action à supprimer. Par exemple, si deux
actions sont associées à l’événement spécifié, 0 est la première et 1 la seconde. Si
cet argument n’est pas défini, toutes les actions associées à l’événement
sélectionné sont supprimées.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.getBehaviorElement()
Disponibilité
2.0
Description
Obtient l’objet DOM correspondant à la balise à laquelle le comportement est
appliqué. Cette fonction ne s’applique qu’aux fichiers d’action.
Arguments
Aucun.
API JavaScript de Dreamweaver
43
000ExtendingDWU.book Page 44 Thursday, June 8, 2000 3:38 PM
Renvoie
Objet DOM ou null. La valeur null est renvoyée dans les cas suivants :
lorsque le script en cours d’exécution n’est pas actif dans le contexte de
l’inspecteur de comportements ;
lorsque l’inspecteur de comportements est utilisé pour modifier un
comportement dans un scénario ;
lorsque le script en cours d’exécution est appelé par la fonction
dreamweaver.popupAction()
;
lorsque l’inspecteur de comportements associe un événement à un emballeur de
lien et que ce dernier n’existe pas ;
lorsque cette fonction se trouve en dehors d’un fichier d’action.
Activateur
Exemple
Aucun.
La fonction dreamweaver.getBehaviorElement() peut être utilisée de la même manière
que la fonction dreamweaver.getBehaviorTag() pour déterminer si l’action
sélectionnée est adaptée à la balise HTML sélectionnée, mais elle vous permet en
outre d’accéder à des informations complémentaires sur la balise et ses attributs.
Par exemple, si vous créez une action qui ne peut être appliquée qu’à un hyperlien
(A HREF) ne renvoyant pas à un autre cadre ou une autre fenêtre, utilisez la fonction
getBehaviorElement() dans la fonction qui initialise l’interface utilisateur de la boîte
de dialogue des paramètres.
function initializeUI(){
var theTag = dreamweaver.getBehaviorElement();
var CANBEAPPLIED = (theTag.tagName == "A"
&& theTag.getAttribute("HREF") != null
&& theTag.getAttribute("TARGET") == null);
if (CANBEAPPLIED) {
// display the action UI
} else{
// display a helpful message that tells the user
// that this action can only be applied to a
// hyperlink without an explicit target]
}
}
44
Chapitre 3
000ExtendingDWU.book Page 45 Thursday, June 8, 2000 3:38 PM
dreamweaver.getBehaviorTag()
Disponibilité
1.2
Description
Obtient la source de la balise à laquelle le comportement est appliqué. Cette
fonction ne s’applique qu’aux fichiers d’action.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Chaîne représentant la source de la balise. Il s’agit de la chaîne transmise à la
fonction canAcceptBehavior() sous forme d’argument (HTMLelement). Si cette
fonction apparaît en dehors d’un fichier d’action, la valeur renvoyée est une chaîne
vide.
Aucun.
Si vous créez une action qui ne peut être appliquée qu’à un hyperlien (A HREF),
vous pouvez utiliser la fonction getBehaviorTag() dans la fonction qui initialise
l’interface utilisateur de la boîte de dialogue des paramètres.
function initializeUI(){
var theTag = dreamweaver.getBehaviorTag().toUpperCase();
var CANBEAPPLIED = (theTag.indexOf(’HREF’) != -1));
if (CANBEAPPLIED) {
// display the action UI
} else{
// display a helpful message that tells the user
// that this action can only be applied to a
// hyperlink
}
}
dreamweaver.popupAction()
Disponibilité
Description
2.0
Propose à l’utilisateur une boîte de dialogue de paramètres correspondant à
l’action de comportement spécifiée. Pour l’utilisateur, cela revient à sélectionner
l’action dans le menu déroulant des actions de l’inspecteur de comportements.
Cette fonction permet aux fichiers d’extension autres que des actions d’associer
des comportements aux objets dans le document de l’utilisateur. L’utilisateur ne
peut effectuer aucune autre modification tant qu’il n’a pas fermé la boîte de
dialogue.
Remarque : cette fonction ne peut être appelée qu’à partir de la fonction objectTag() ou
d’un script de fichier de commande ou d’inspecteur de propriétés.
Arguments
actionName, {funcCall}
Le premier argument correspond au nom d’un fichier du dossier
Configuration/Behaviors/Actions contenant une action de comportement
JavaScript ("Timeline/Play Timeline.htm", par exemple).
API JavaScript de Dreamweaver
45
000ExtendingDWU.book Page 46 Thursday, June 8, 2000 3:38 PM
Le second argument est une chaîne contenant un appel de fonction pour
l’action définie dans actionName ("MM_playTimeline(...)", par exemple). Cet
argument, s’il est défini, est fourni par la fonction applyBehavior() du fichier
d’action.
Renvoie
Activateur
Appel de fonction de l’action de comportement. Lorsque l’utilisateur clique sur
OK dans la boîte de dialogue des paramètres, le comportement est ajouté au
document en cours (les fonctions appropriées sont ajoutées entre les balises HEAD
du document, du code HTML peut être ajouté au début de la balise BODY et
d’autres modifications peuvent être effectuées dans le document). L’appel de
fonction ("MM_playTimeline(...)", par exemple) n’est pas ajouté au document ; il
devient la valeur renvoyée par cette fonction.
Aucun.
dreamweaver.behaviorInspector.getBehaviorAt()
Disponibilité
3.0
Description
Obtient le couple événement/action (comportement) qui se trouve à la position
indiquée dans l’inspecteur de comportements.
Arguments
positionIndex
Renvoie
Tableau constitué de deux éléments :
un gestionnaire d’événements ;
un appel de fonction ou une instruction JavaScript.
Activateur
Exemple
46
Chapitre 3
Aucun.
Du fait que positionIndex est un index de référence zéro, si l’inspecteur de
comportements affiche la liste illustrée ci-après, un appel à la fonction
dw.behaviorInspector.getBehaviorAt(2) renvoie un tableau constitué de deux chaînes :
"onMouseOver" et
"MM_changeProp(’document.moon’,’document.moon’,’src,’sun.gif’,’IMG’)" .
000ExtendingDWU.book Page 47 Thursday, June 8, 2000 3:38 PM
dreamweaver.behaviorInspector.getBehaviorCount()
Disponibilité
3.0
Description
Compte le nombre d’actions associées à l’élément actuellement sélectionné à l’aide
de gestionnaires d’événements.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Nombre entier représentant le nombre d’actions associées à l’élément. Ce nombre
est équivalent au nombre d’actions visibles dans l’inspecteur de comportements et
comprend les actions de comportement Dreamweaver et le code JavaScript
personnalisé.
Aucun.
Un appel à la fonction dw.behaviorInspector.getBehaviorCount() pour le lien
sélectionné <A HREF="javascript:setCookie()" onClick="MM_popupMsg(’A cookie has
been set.’);parent.rightframe.location.href=’aftercookie.html’"> renverrait le nombre 2.
dreamweaver.behaviorInspector.getSelectedBehavior()
Disponibilité
3.0
Description
Obtient la position de l’action sélectionnée dans l’inspecteur de comportements.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Entier représentant la position de l’action sélectionnée dans l’inspecteur de
comportement, ou -1 si aucune action n’est sélectionnée.
Aucun.
Si la première action de l’inspecteur de comportements est sélectionnée, comme le
montre l’illustration ci-après, un appel à la fonction
dw.behaviorInspector.getSelectedBehavior() renvoie le nombre 0.
API JavaScript de Dreamweaver
47
000ExtendingDWU.book Page 48 Thursday, June 8, 2000 3:38 PM
dreamweaver.behaviorInspector.moveBehaviorDown()
Disponibilité
3.0
Description
Déplace une action de comportement vers le bas, à l’intérieur d’une séquence, en
modifiant son ordre d’exécution au sein d’un événement.
Arguments
positionIndex
L’argument représente la position de l’action dans l’inspecteur de comportements.
La première action de la liste est à la position 0.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
En supposant que l’inspecteur de comportements est configuré comme dans
l’illustration ci-après, l’appel de la fonction
dw.behaviorInspector.moveBehaviorDown(2) aura pour effet d’intervertir les positions
des actions Script personnalisé et Changer la propriété au sein de l’événement
onMouseOver. Pour toute autre position, la fonction
dw.behaviorInspector.moveBehaviorDown() n’aurait aucun effet car un seul
comportement est associé aux événements onClick et onMouseOut et le
comportement figurant à la position 3 se trouve déjà à la fin du groupe
onMouseOver.
dreamweaver.behaviorInspector.moveBehaviorUp()
Disponibilité
3.0
Description
Déplace un comportement vers le haut, à l’intérieur d’une séquence, en modifiant
son ordre d’exécution au sein d’un événement.
Arguments
positionIndex
L’argument représente la position de l’action dans l’inspecteur de comportements.
La première action de la liste est à la position 0.
Renvoie
Activateur
48
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 49 Thursday, June 8, 2000 3:38 PM
Exemple
En supposant que l’inspecteur de comportements est configuré comme dans
l’illustration ci-après, la fonction dw.behaviorInspector.moveBehaviorUp(3) aura pour
effet d’intervertir les positions des actions Script personnalisé et Changer la
propriété au sein de l’événement onMouseOver. Pour toute autre position, la
fonction dw.behaviorInspector.moveBehaviorUp() n’aurait aucun effet car un seul
comportement est associé aux événements onClick et onMouseOut et le
comportement figurant à la position 2 se trouve déjà au début du groupe
onMouseOver.
dreamweaver.behaviorInspector.setSelectedBehavior()
Disponibilité
3.0
Description
Sélectionne l’action qui se trouve à la position indiquée dans l’inspecteur de
comportements.
Arguments
positionIndex
L’argument représente la position de l’action dans l’inspecteur de comportements.
La première action de la liste est à la position 0. Pour désélectionner toutes les
actions, spécifiez l’index de position (positionIndex) –1. Spécifier une position à
laquelle ne correspond aucune action revient à spécifier –1.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
En supposant que l’inspecteur de comportements est configuré comme dans
l’exemple ci-après, l’appel de la fonction dw.behaviorInspector.setSelection (3)
sélectionnera l’action Changer la propriété associée à l’événement onMouseOut.
API JavaScript de Dreamweaver
49
000ExtendingDWU.book Page 50 Thursday, June 8, 2000 3:38 PM
Fonctions relatives au Presse-papiers
Ces fonctions permettent de copier, de couper et de coller des informations à
l’aide du Presse-papiers. Sur Macintosh, certaines fonctions du Presse-papiers
peuvent également être utilisées dans les champs modifiables des boîtes de
dialogue et des palettes flottantes. Dans ce cas, elles peuvent être implémentées en
tant que méthodes de l’objet dreamweaver ou en tant que méthodes de l’objet dom.
La version dreamweaver de la fonction agit sur la sélection dans la fenêtre active,
qu’il s’agisse de la fenêtre de document en cours, de la fenêtre de l’inspecteur
HTML ou de la fenêtre Site. Sur Macintosh, la fonction peut également être
appliquée à la sélection dans le champ modifiable actif. La version dom de la
fonction agit toujours sur la sélection dans le document spécifié.
dom.clipCopy()
Disponibilité
3.0
Description
Copie la sélection dans le Presse-papiers avec toutes les balises HTML
correspondantes.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.clipCopyText()
Disponibilité
3.0
Description
Copie le texte sélectionné dans le Presse-papiers sans les balises HTML
correspondantes.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canClipCopyText()
dom.clipCut()
Disponibilité
Description
Coupe la sélection et la place dans le Presse-papiers, avec toutes les balises HTML
correspondantes.
Arguments
Aucun.
Renvoie
Activateur
50
3.0
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 51 Thursday, June 8, 2000 3:38 PM
dom.clipPaste()
Disponibilité
3.0
Description
Colle le contenu du Presse-papiers dans le document en cours, au point
d’insertion en cours ou par dessus la sélection en cours. Si le Presse-papiers
contient des balises HTML, celles-ci sont interprétées comme telles.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Aucune.
dom.canClipPaste()
Si le Presse-papiers contient ce qui suit : <code>return true;</code>, un appel à la
fonction dw.getDocumentDOM().clipPaste() produira le résultat suivant :
API JavaScript de Dreamweaver
51
000ExtendingDWU.book Page 52 Thursday, June 8, 2000 3:38 PM
dom.clipPasteText()
Disponibilité
3.0
Description
Colle le contenu du Presse-papiers dans le document en cours, au point
d’insertion en cours ou par dessus la sélection en cours et remplace les sauts de
ligne éventuels par des balises BR. Si le Presse-papiers contient des balises HTML,
celles-ci ne sont pas interprétées et les séparateurs de balises (< >) sont remplacés
par &lt; et &gt; respectivement.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Aucune.
dom.canClipPasteText()
Si le Presse-papiers contient ce qui suit : <code>return true;</code>, un appel à la
fonction dw.getDocumentDOM().clipPasteText() produira le résultat suivant :
dreamweaver.clipCopy()
Disponibilité
Description
Copie la sélection en cours de la fenêtre active (qu’il s’agisse de la fenêtre du
document, d’une boîte de dialogue, d’une palette flottante ou d’un volet de la
fenêtre Site) dans le Presse-papiers.
Arguments
Aucun.
Renvoie
Activateur
52
3.0
Chapitre 3
Aucune.
dreamweaver.canClipCopy()
000ExtendingDWU.book Page 53 Thursday, June 8, 2000 3:38 PM
dreamweaver.clipCut()
Disponibilité
3.0
Description
Supprime la sélection en cours de la fenêtre active (qu’il s’agisse de la fenêtre du
document, d’une boîte de dialogue, d’une palette flottante ou d’un volet de la
fenêtre Site) et la place dans le Presse-papiers.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.canClipCut()
dreamweaver.clipPaste()
Disponibilité
3.0
Description
Colle le contenu du Presse-papiers dans la fenêtre de document, la boîte de
dialogue, la palette flottante ou le volet de la fenêtre Site en cours.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.canClipPaste()
dreamweaver.getClipboardText()
Disponibilité
3.0
Description
Obtient tout le texte mémorisé dans le Presse-papiers.
Arguments
Aucun.
Renvoie
Activateur
Chaîne représentant le contenu du Presse-papiers (il peut s’agir de balises HTML)
ou rien, si le Presse-papiers est vide.
Aucun.
Fonctions relatives aux commandes
Ces fonctions permettent d’exploiter au mieux les fichiers figurant dans le dossier
Configuration/Commands. Elles permettent de gérer le menu Commandes et
d’appeler des commandes à partir d’autres types de fichiers d’extension.
dreamweaver.editCommandList()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Modifier la liste de commandes.
Arguments
Aucun.
API JavaScript de Dreamweaver
53
000ExtendingDWU.book Page 54 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.runCommand()
Disponibilité
Description
3.0
Exécute la commande spécifiée. Pour l’utilisateur, cela revient à choisir la
commande dans un menu ; si une boîte de dialogue est associée à la commande,
elle s’affiche (et le script de commandes empêche toute autre modification jusqu’à
ce que l’utilisateur ait fermé la boîte de dialogue). Cette fonction permet d’appeler
une commande à partir d’un autre fichier d’extension.
Remarque : cette fonction ne peut être appelée qu’à partir de la fonction objectTag() ou
d’un script de fichier de commande,ou d’inspecteur de propriétés, ou de menu.
Arguments
commandFile, {commandArg1}, {commandArg2},...{commandArgN}
L’argument est le nom d’un fichier du dossier Configuration/Commands.
Les arguments suivants sont transmis à commandFile sous forme d’arguments.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
Vous pouvez créer un inspecteur de propriétés personnalisé pour les tableaux qui
permettra à l’utilisateur d’accéder à la commande Formater le tableau à l’aide d’un
bouton de l’inspecteur. Pour ce faire, appelez la fonction suivante à partir du
gestionnaire d’événements onClick de ce bouton :
function callFormatTable(){
dw.runCommand(’Format Table.htm’);
}
Fonctions relatives aux conversions
Ces fonctions permettent de convertir des tableaux en calques, des calques en
tableaux et des feuilles de style en cascade (CSS) en balises HTML. Chacune de
ces fonctions se comporte exactement comme une commande de conversion du
menu Fichier ou Modifier.
dom.convertLayersToTable()
Disponibilité
54
3.0
Description
Ouvre la boîte de dialogue Convertir les calques en tableau.
Arguments
Aucun.
Chapitre 3
000ExtendingDWU.book Page 55 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Aucune.
dom.canConvertLayersToTable()
dom.convertTablesToLayers()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Convertir les tableaux en calques.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canConvertTablesToLayers()
dom.convertTo30()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Convertir au format compatible avec les
navigateurs 3.0.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
Fonctions relatives aux styles CSS
Ces fonctions permettent d’appliquer, de retirer, de créer et de supprimer des
styles CCS. Les méthodes de l’objet dreamweaver.cssStylePalette contrôlent ou
agissent sur la sélection dans la palette de styles et non dans le document en cours.
dom.applyCSSStyle()
Disponibilité
3.0
Description
Applique le style spécifié à l’élément spécifié. Cette fonction n’est valide que pour
le document actif.
Arguments
elementNode, styleName, {classOrID}
Le premier argument est un nœud d’élément du DOM. Si l’argument
elementNode a pour valeur NULL ou est exprimé
(’’), la fonction agit sur la sélection en cours.
sous forme d’une chaîne vide
Le second argument est le nom d’un style CSS.
API JavaScript de Dreamweaver
55
000ExtendingDWU.book Page 56 Thursday, June 8, 2000 3:38 PM
Le troisième argument est l’attribut avec lequel le style doit être appliqué
(“class” ou “id”). Si l’argument elementNode a pour valeur NULL ou s’il est
exprimé sous forme d’une chaîne vide et qu’aucune balise n’entoure
complètement la sélection, le style est appliqué avec des balises SPAN. Si la
sélection est un point d’insertion, Dreamweaver utilise la méthode heuristique
pour déterminer à quelle balise le style doit être appliqué.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
Le code suivant applique le style red à la sélection, soit en entourant cette dernière
de balises SPAN, soit en appliquant un attribut CLASS aux balises qui entourent la
sélection :
var theDOM = dreamweaver.getDocumentDOM(’document’);
theDOM.applyCSSStyle(’’,’red’);
dom.removeCSSStyle()
Disponibilité
3.0
Description
Supprime l’attribut CLASS ou ID de l’élément spécifié, ou supprime les balises SPAN
qui entourent complètement l’élément spécifié. Cette fonction n’est valide que
pour le document actif.
Arguments
elementNode, {classOrID}
Le premier argument est un nœud d’élément du DOM. Si l’argument
elementNode
est une chaîne vide (‘’), la fonction est appliquée à la sélection en
cours.
Le second argument est l’attribut à supprimer ("class" ou "id" ). Si l’attribut
classOrID n’est pas spécifié, il prend par défaut la valeur "class" . Si aucun attribut
CLASS n’est défini pour l’argument elementNode, les balises SPAN entourant
elementNode sont supprimées.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.cssStylePalette.deleteSelectedStyle()
Disponibilité
Description
Supprime du document le style actuellement sélectionné dans la palette de styles.
Arguments
Aucun.
Renvoie
Activateur
56
3.0
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 57 Thursday, June 8, 2000 3:38 PM
dreamweaver.cssStylePalette.duplicateSelectedStyle()
Disponibilité
3.0
Description
Duplique le style actuellement sélectionné dans la palette de styles et affiche la
boîte de dialogue Dupliquer le style afin de permettre à l’utilisateur d’attribuer un
nom ou un sélecteur au nouveau style.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.cssStylePalette.editSelectedStyle()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Définition du style pour le style actuellement
sélectionné dans la palette de styles.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.cssStylePalette.editStyleSheet()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Modifier feuille de style.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.cssStylePalette.getSelectedStyle()
Disponibilité
3.0
Description
Obtient le nom du style actuellement sélectionné dans la palette de styles.
Arguments
Aucun.
Renvoie
Activateur
Chaîne représentant le nom du style, ou chaîne vide si aucun style n’est
sélectionné.
Aucun.
API JavaScript de Dreamweaver
57
000ExtendingDWU.book Page 58 Thursday, June 8, 2000 3:38 PM
Exemple
Si le style red est sélectionné, comme le montre l’illustration ci-après, un appel à la
fonction dw.cssStylePalette.getSelectedStyle() renvoie "red".
dreamweaver.cssStylePalette.getSelectedTarget()
Disponibilité
3.0
Description
Obtient l’élément sélectionné dans le menu déroulant Appliquer à, en haut de la
palette de styles.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Objet auquel le style doit être appliqué ou NULL si la cible est la sélection en cours.
Aucun.
Avant d’appliquer un style, utilisez dw.cssStylePalette.getSelectedTarget(), pour le cas
où l’utilisateur changerait la cible, comme le montre l’illustration ci-après.
Exemple :
var currDOM = dw.getDocumentDOM();
currDOM.applyCSSStyle(dw.cssStylePalette.getSelectedTarget(), "codeRed");
58
Chapitre 3
000ExtendingDWU.book Page 59 Thursday, June 8, 2000 3:38 PM
dreamweaver.cssStylePalette.getStyles()
Disponibilité
3.0
Description
Obtient la liste de tous les styles de classe que contient le document actif.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Tableau de chaînes représentant les noms de tous les styles de classe que contient le
document.
Aucun.
En supposant que la palette Styles CSS est configurée comme dans l’exemple
illustré ci-après, un appel à la fonction dw.cssStylePalete.getStyles() renverra le
tableau de chaînes suivant :
"bigCode"
"red"
"sectionHead"
dreamweaver.cssStylePalette.newStyle()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Nouveau style.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
59
000ExtendingDWU.book Page 60 Thursday, June 8, 2000 3:38 PM
Fonctions relatives aux applications externes
Ces fonctions permettent d’effectuer des opérations relatives aux navigateurs et
aux éditeurs externes, définis respectivement dans Préférences, catégorie Aperçu
dans le navigateur, et dans Préférences, catégorie Editeurs externes. Elles
permettent d’obtenir des informations sur les applications externes et d’ouvrir des
fichiers dans ces applications.
dreamweaver.browseDocument()
Disponibilité
version 2.0, améliorée dans la version 3.0.
Description
Ouvre l’URL spécifiée dans le navigateur spécifié.
Arguments
fileName, {browserName}
Le premier argument est le nom du fichier à ouvrir, exprimé sous la forme
d’une URL absolue.
Le second argument, qui a été rajouté à la version 3 de Dreamweaver, est le
nom d’un navigateur défini dans les préférences de l’Aperçu dans le navigateur.
Si cet argument n’est pas défini, le navigateur principal de l’utilisateur est utilisé
par défaut.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
La fonction suivante utilise dreamweaver.browseDocument() pour ouvrir la page
d’accueil Hotwired dans un navigateur :
function goToHotwired(){
dreamweaver.browseDocument(’http://www.hotwired.com/’);
}
Dans Dreamweaver 3, vous pouvez faire en sorte que cette opération ouvre le
document dans Internet Explorer à l’aide du code suivant :
function goToHotwired(){
var prevBrowsers = dw.getBrowserList();
var theBrowser = "";
for (var i=1; i < prevBrowsers.length; i+2){
if (prevBrowsers[i].indexOf(’Iexplore.exe’) != -1){
theBrowser = prevBrowsers[i];
break;
}
}
dw.browseDocument(’http://www.hotwired.com/’,theBrowser);
}
Pour en savoir plus sur la fonction dw.getBrowserList(), voir la section
« dreamweaver.getBrowserList() » à la page 61 .
60
Chapitre 3
000ExtendingDWU.book Page 61 Thursday, June 8, 2000 3:38 PM
dreamweaver.getBrowserList()
Disponibilité
3.0
Description
Obtient la liste des navigateurs définis dans le sous-menu Aperçu dans le
navigateur.
Arguments
Aucun.
Renvoie
Activateur
Tableau contenant autant de couples de chaînes que de navigateurs définis. La
première chaîne de chaque couple représente le nom du navigateur, et la seconde
son emplacement sur la machine de l’utilisateur, exprimé sous la forme d’une
URL de type file://. Si aucun navigateur n’est défini, la fonction ne renvoie rien.
Aucun.
dreamweaver.getExtensionEditorList()
Disponibilité
3.0
Description
Obtient la liste des éditeurs définis dans les préférences des éditeurs externes pour
le fichier spécifié.
Arguments
fileURL
L’argument peut être une URL de type file:// complète, un nom de fichier ou une
extension de fichier (point compris).
Renvoie
Activateur
Exemple
Tableau contenant autant de couples de chaînes que d’éditeurs définis. La
première chaîne de chaque couple représente le nom de l’éditeur, et la seconde son
emplacement sur la machine de l’utilisateur, exprimé sous la forme d’une URL de
type file://. Si aucun éditeur n’est défini dans les préférences, la fonction renvoie
un tableau contenant une chaîne vide.
Aucun.
Un appel à la fonction dw.getExtensionEditorList(".gif") pourrait renvoyer un tableau
contenant les deux chaînes suivantes :
"Fireworks 3"
"file:///C|/Program Files/Macromedia/Fireworks 3/Fireworks 3.exe"
dreamweaver.getPrimaryBrowser()
Disponibilité
3.0
Description
Obtient le chemin du navigateur principal.
Arguments
Aucun.
Renvoie
Activateur
Chaîne contenant le chemin du navigateur principal sur le disque dur de
l’utilisateur, exprimé sous la forme d’une URL de type file://, ou rien, si aucun
navigateur principal n’est défini.
Aucun.
API JavaScript de Dreamweaver
61
000ExtendingDWU.book Page 62 Thursday, June 8, 2000 3:38 PM
dreamweaver.getPrimaryExtensionEditor()
Disponibilité
3.0
Description
Obtient l’éditeur principal associé au fichier spécifié.
Arguments
fileURL
Renvoie
Activateur
Tableau contenant un couple de chaînes. La première chaîne de chaque couple
représente le nom de l’éditeur, et la seconde son emplacement sur la machine de
l’utilisateur, exprimé sous la forme d’une URL de type file://. Si aucun éditeur
principal n’est défini, la fonction renvoie un tableau contenant une chaîne vide.
Aucun.
dreamweaver.getSecondaryBrowser()
Disponibilité
3.0
Description
Obtient le chemin du navigateur secondaire.
Arguments
Aucun.
Renvoie
Activateur
Chaîne contenant le chemin du navigateur secondaire sur le disque dur de
l’utilisateur, exprimé sous la forme d’une URL de type file://, ou rien, si aucun
navigateur secondaire n’est défini.
Aucun.
dreamweaver.openWithApp()
Disponibilité
3.0
Description
Ouvre le fichier spécifié dans l’application spécifiée.
Arguments
fileURL, appURL
Le premier argument est le chemin du fichier à ouvrir, exprimé sous la forme
d’une URL de type file://.
Le second argument est le chemin de l’application dans laquelle le fichier doit
être ouvert, exprimé sous la forme d’une URL de type file://.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.openWithBrowseDialog()
Disponibilité
62
3.0
Description
Ouvre la boîte de dialogue Sélectionner un éditeur externe afin de permettre à
l’utilisateur de choisir l’application dans laquelle le fichier spécifié doit s’ouvrir.
Arguments
fileURL
Chapitre 3
000ExtendingDWU.book Page 63 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.openWithExternalTextEditor()
Disponibilité
3.0
Description
Ouvre le document en cours dans l’éditeur de texte externe défini dans les
préférences des éditeurs externes.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.openWithImageEditor()
Disponibilité
Description
3.0
Ouvre le fichier spécifié dans l’éditeur d’image spécifié.
Remarque : cette fonction fait appel à un mécanisme spécial d’intégration Fireworks qui
renvoie les informations au document actif dans le cas où Fireworks est spécifié comme
éditeur d’image. Pour éviter les erreurs lorsqu’aucun document n’est actif, n’appelez jamais
cette fonction à partir de la fenêtre Site.
Arguments
fileURL, appURL
Le premier argument est le chemin du fichier à ouvrir, exprimé sous la forme
d’une URL de type file://.
Le second argument est le chemin de l’application dans laquelle le fichier doit
être ouvert, exprimé sous la forme d’une URL de type file://.
Renvoie
Activateur
Aucune.
Aucun.
Fonctions relatives aux manipulations de
fichiers
Ces fonctions permettent de créer, d’ouvrir et d’enregistrer des documents et
d’exporter des feuilles de style en cascade vers des fichiers externes. Elles
permettent également de rechercher des fichiers ou des dossiers, de créer des
fichiers à partir de modèles, de fermer des documents et d’obtenir la liste des
fichiers récemment ouverts.
API JavaScript de Dreamweaver
63
000ExtendingDWU.book Page 64 Thursday, June 8, 2000 3:38 PM
dreamweaver.browseForFileURL()
Disponibilité
version 1,0, améliorée dans les versions 2.0 et 3.0
Description
Ouvre le type de boîte de dialogue spécifié ayant le libellé spécifié dans la barre de
titre.
Arguments
openSelectOrSave, {titleBarLabel}, {bShowPreviewPane}, {bSupressSiteRootWarnings}
Le premier argument indique le type de la boîte de dialogue : open, select ou
save.
Le second argument, rajouté à Dreamweaver 2, est le libellé qui doit figurer
dans la barre de titre de la boîte de dialogue. Si cet argument n’est pas défini,
Dreamweaver utilise par défaut le libellé fourni par le système d’exploitation.
Le troisième argument, rajouté à Dreamweaver 2, est une valeur booléenne
indiquant si le volet d’aperçu de l’image doit être affiché dans la boîte de
dialogue. Si l’argument a pour valeur TRUE, la boîte de dialogue filtre les fichiers
image ; s’il n’est pas défini, il prend par défaut la valeur FALSE.
Le quatrième argument, rajouté à Dreamweaver 3, est une valeur booléenne
indiquant s’il faut supprimer les avertissements indiquant que le fichier
sélectionné se trouve hors du dossier racine du site. Si cet argument n’est pas
défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Chaîne contenant le nom du fichier, exprimé sous la forme d’une URL de type
file://.
Aucun.
dreamweaver.browseForFolderURL()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Choisir un dossier ayant le libellé spécifié dans la barre
de titre.
Arguments
{titleBarLabel}, {directoryToStartIn}
Le premier argument est le libellé qui doit figurer dans la barre de titre de la
boîte de dialogue. S’il n’est pas défini, l’argument titleBarLabel prend par défaut
la valeur “Choose Folder”.
Le second argument est le chemin du répertoire dans lequel vous voulez
commencer, exprimé sous la forme d’une URL de type file://.
Renvoie
Activateur
Exemple
Chaîne contenant le nom du dossier, exprimé sous la forme d’une URL de type
file://.
Aucun.
Le code suivant renvoie l’URL d’un dossier :
return dw.browseForFolderURL(’Select a Folder’, dw.getSiteRoot());
64
Chapitre 3
000ExtendingDWU.book Page 65 Thursday, June 8, 2000 3:38 PM
dreamweaver.closeDocument()
Disponibilité
3.0
Description
Ferme le document spécifié.
Arguments
documentObject
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()). Si documentObject fait
référence au document actif, il se peut que la fenêtre du document ne se ferme pas
tant que l’exécution du script qui appelle cette fonction n’est pas terminée.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.createDocument()
Disponibilité
Description
2.0
Ouvre un nouveau document dans la même fenêtre ou dans une nouvelle. Le
nouveau document devient le document actif.
Remarque : cette fonction peut être appelée uniquement à partir du fichier menus.xml ou
d’un fichier de commande ou d’inspecteur de propriétés. Si une action ou un objet tente
d’appeler cette fonction, Dreamweaver affiche un message d’erreur.
Arguments
{bOpenInSameWindow}
L’argument est une valeur booléenne indiquant si le nouveau document doit
s’ouvrir dans la fenêtre en cours. Si l’argument bOpenInSameWindow a pour valeur
FALSE, qu’il n’est pas précisé ou que la fonction est appelée sur Macintosh, le
nouveau document s’ouvre dans une nouvelle fenêtre.
Renvoie
Activateur
Objet document correspondant au nouveau document créé. Il s’agit de la valeur
renvoyée par la fonction dreamweaver.getDocumentDOM().
Aucun.
dreamweaver.exportCSS()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Exporter les styles dans un fichier CSS.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.canExportCSS()
dreamweaver.exportEditableRegionsAsXML()
Disponibilité
3.0
API JavaScript de Dreamweaver
65
000ExtendingDWU.book Page 66 Thursday, June 8, 2000 3:38 PM
Description
Ouvre la boîte de dialogue Exporter les régions modifiables sous XML.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.getRecentFileList()
Disponibilité
3.0
Description
Obtient la liste de tous les fichiers récemment ouverts et répertoriés au bas du
menu Fichier.
Arguments
Aucun.
Renvoie
Activateur
Tableau de chaînes représentant les chemins des derniers fichiers ouverts, exprimés
sous la forme d’URL de type file://. Si aucun fichier n’a été ouvert récemment, la
fonction ne renvoie aucune valeur.
Aucun.
dreamweaver.importXMLIntoTemplate()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Importer XML.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.newFromTemplate()
Disponibilité
3.0
Description
Crée un nouveau document à partir du modèle spécifié. Si vous ne spécifiez aucun
argument, la boîte de dialogue Sélectionner le modèle s’affiche.
Arguments
{templateURL}
L’argument est le chemin d’un modèle disponible sur le site en cours, exprimé sous
la forme d’une URL de type file://.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.openDocument()
Disponibilité
66
Chapitre 3
2.0
000ExtendingDWU.book Page 67 Thursday, June 8, 2000 3:38 PM
Description
Ouvre un document à modifier dans une nouvelle fenêtre Dreamweaver et en fait
le document actif. Pour l’utilisateur, cela revient à choisir Fichier > Ouvrir et à
sélectionner un fichier. Si le fichier spécifié est déjà ouvert, la fenêtre
correspondante s’affiche au premier plan. La fenêtre contenant le fichier spécifié
devient la fenêtre active et le fichier sélectionné devient le document en cours.
Dans Dreamweaver 2, si la fonction d’archivage/extraction est activée, le fichier est
extrait avant d’être ouvert. Dans Dreamweaver 3, vous devez utiliser la fonction
dreamweaver.openDocumentFromSite() pour obtenir ce résultat.
Remarque : cette fonction ne peut pas être appelée à partir d’un fichier d’objet ou d’action
de comportement. Elle provoquerait une erreur.
Arguments
fileName
L’argument est le nom du fichier à ouvrir, exprimé sous la forme d’une URL. S’il
s’agit d’une URL relative, elle est relative au fichier contenant le script ayant
appelé cette fonction.
Renvoie
Activateur
Objet document correspondant au fichier spécifié. Il s’agit de la valeur renvoyée
par la fonction dreamweaver.getDocumentDOM().
Aucun.
API JavaScript de Dreamweaver
67
000ExtendingDWU.book Page 68 Thursday, June 8, 2000 3:38 PM
dreamweaver.openDocumentFromSite()
Disponibilité
Description
3.0
Ouvre un document à modifier dans une nouvelle fenêtre Dreamweaver et en fait
le document actif. Pour l’utilisateur, cela revient à double-cliquer sur un fichier
dans la fenêtre Site. Si le fichier spécifié est déjà ouvert, la fenêtre correspondante
s’affiche au premier plan. La fenêtre contenant le fichier spécifié devient la fenêtre
active et le fichier sélectionné devient le document en cours.
Remarque : cette fonction ne peut pas être appelée à partir d’un fichier d’objet ou d’action
de comportement. Elle provoquerait une erreur.
Arguments
fileName
L’argument est le nom du fichier à ouvrir, exprimé sous la forme d’une URL. S’il
s’agit d’une URL relative, elle est relative au fichier contenant le script ayant
appelé cette fonction.
Renvoie
Activateur
Objet document correspondant au fichier spécifié. Il s’agit de la valeur renvoyée
par la fonction dreamweaver.getDocumentDOM().
Aucun.
dreamweaver.openInFrame()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Ouvrir dans un cadre. Lorsque l’utilisateur sélectionne
un document, celui-ci s’ouvre dans le cadre actif.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.canOpenInFrame()
dreamweaver.releaseDocument()
Disponibilité
Description
2.0
Libère explicitement de la mémoire un document précédemment référencé.
Les documents référencés par les fonctions dreamweaver.getObjectTags(),
dreamweaver.getObjectRefs(), dreamweaver.getDocumentPath() et
dreamweaver.getDocumentDOM() sont automatiquement libérés au terme de
l’exécution du script contenant l’appel. Si le script ouvre un nombre important de
documents, vous devez utiliser cette fonction pour en libérer certains
explicitement avant la fin de l’exécution du script, ceci afin d’éviter de saturer la
mémoire.
68
Chapitre 3
000ExtendingDWU.book Page 69 Thursday, June 8, 2000 3:38 PM
Remarque : cette fonction ne s’applique qu’aux documents référencés par une URL, qui ne
sont pas ouverts dans un cadre ou dans une fenêtre de document et qui ne correspondent
pas à des fichiers d’extension. (Les fichiers d’extension sont chargés en mémoire au
démarrage et n’en sont libérés que lorsque vous quittez Dreamweaver).
Arguments
documentObject
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.revertDocument()
Disponibilité
3.0
Description
Rétablit la version précédemment enregistrée du fichier spécifié.
Arguments
documentObject
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
Renvoie
Activateur
Aucune.
dreamweaver.canRevertDocument()
dreamweaver.saveAll()
Disponibilité
3.0
Description
Enregistre tous les documents ouverts et ouvre la boîte de dialogue Enregistrer
sous pour tous ceux qui n’ont pas encore été enregistrés.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.canSaveAll()
dreamweaver.saveDocument()
Disponibilité
Description
2.0
Enregistre le fichier spécifié sur un lecteur local.
Remarque : dans Dreamweaver 2, si le fichier est accessible en lecture seule, Dreamweaver
tente de l’extraire. Si le document reste en lecture seule après cette tentative ou qu’il ne peut
pas être créé, un message d’erreur s’affiche.
Arguments
documentObject, {fileURL}
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
API JavaScript de Dreamweaver
69
000ExtendingDWU.book Page 70 Thursday, June 8, 2000 3:38 PM
Le second argument est une URL représentant un emplacement sur un lecteur
local. S’il s’agit d’une URL relative, elle est relative au fichier d’extension. Dans
Dreamweaver 2, cet argument est obligatoire. Dans Dreamweaver 3, si
l’argument fileURL n’est pas défini et que le fichier a été enregistré
précédemment, ce dernier est enregistré au même endroit ; sinon, une boîte de
dialogue d’enregistrement s’affiche.
Renvoie
Activateur
Valeur booléenne indiquant le succès (TRUE) ou l’échec (FALSE) de l’opération.
dreamweaver.canSaveDocument()
dreamweaver.saveDocumentAs()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Enregistrer sous.
Arguments
documentObject
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.saveDocumentAsTemplate()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Enregistrer comme modèle.
Arguments
documentObject
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
Renvoie
Activateur
Aucune.
dreamweaver.canSaveDocumentAsTemplate()
dreamweaver.saveFrameset()
Disponibilité
3.0
Description
Enregistre le jeu de cadres spécifié ou, si ce dernier n’a pas encore été enregistré,
ouvre la boîte de dialogue Enregistrer sous.
Arguments
documentObject
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
Renvoie
Activateur
70
Chapitre 3
Aucune.
dreamweaver.canSaveFrameset()
000ExtendingDWU.book Page 71 Thursday, June 8, 2000 3:38 PM
dreamweaver.saveFramesetAs()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Enregistrer sous correspondant au fichier de jeu de
cadres comprenant le DOM spécifié.
Arguments
documentObject
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
Renvoie
Activateur
Aucune.
dreamweaver.canSaveFramesetAs()
Fonctions relatives à la recherche et au
remplacement
Comme leur nom l’indique, ces fonctions permettent d’effectuer des recherches et
des remplacements. Elles vont de la simple recherche de l’occurrence suivante
d’une chaîne donnée à des opérations plus complexes de remplacement
automatique.
dreamweaver.findNext()
Disponibilité
3.0
Description
Recherche l’occurrence suivante de la chaîne de recherche précédemment définie
par la fonction dreamweaver.setUpFind() ou dreamweaver.setUpComplexFind() ou par
l’utilisateur (à l’aide de la boîte de dialogue Rechercher), puis la sélectionne dans le
document.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.canFindNext()
API JavaScript de Dreamweaver
71
000ExtendingDWU.book Page 72 Thursday, June 8, 2000 3:38 PM
dreamweaver.replace()
Disponibilité
3.0
Description
S’assure que la sélection en cours correspond aux critères de recherche définis
précédemment par la fonction dreamweaver.setUpFindReplace() ou
dreamweaver.setUpComplexFindReplace() ou par l’utilisateur dans la boîte de dialogue
Remplacer, puis la remplace par le contenu spécifié dans cette requête.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.replaceAll()
Disponibilité
3.0
Description
Remplace chaque section du document en cours correspondant aux critères de
recherche précédemment définis par la fonction dreamweaver.setUpFindReplace() ou
dreamweaver.setUpComplexFindReplace() ou par l’utilisateur (dans la boîte de dialogue
Remplacer) par le contenu spécifié dans cette requête.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.setUpComplexFind()
Disponibilité
3.0
Description
Prépare le terrain pour une recherche avancée de texte ou de balises en chargeant la
requête XML spécifiée.
Arguments
xmlQueryString
Le premier argument est une chaîne de code XML commençant par <dwquery> et
se terminant par </dwquery>. (Pour obtenir une chaîne ayant le format correct,
vous devez définir la requête à l’aide de la boîte de dialogue Rechercher, cliquer sur
le bouton Enregistrer la requête, ouvrir le fichier de requête dans un éditeur de
texte et copier tout ce qui est compris entre le début de la balise <dwquery> et la
fin de la balise </dwquery>.)
Renvoie
Activateur
72
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 73 Thursday, June 8, 2000 3:38 PM
Exemple
Dans l’exemple ci-après, la première ligne de code définit une recherche de balise
et précise que la recherche doit porter sur le document en cours ; la deuxième
ligne exécute la recherche :
dw.setUpComplexFind(’<dwquery><queryparams matchcase="false"
ignorewhitespace="true"
useregexp="false"/><find><qtag qname="a"><qattribute qname="href" qcompare="="
qvalue="#"></qattribute><qattribute qname="onMouseOut" qcompare="=" qvalue=""
qnegate="true"></qattribute></qtag></find></dwquery>’);
dw.findNext();
dreamweaver.setUpComplexFindReplace()
Disponibilité
3.0
Description
Prépare le terrain pour une recherche avancée de texte ou de balises en chargeant la
requête XML spécifiée.
Arguments
xmlQueryString
Le premier argument est une chaîne de code XML commençant par <dwquery> et
se terminant par </dwquery>. (Pour obtenir une chaîne ayant le format correct,
vous devez définir la requête à l’aide de la boîte de dialogue Rechercher, cliquer sur
le bouton Enregistrer la requête, ouvrir le fichier de requête dans un éditeur de
texte et copier tout ce qui est compris entre le début de la balise <dwquery> et la
fin de la balise </dwquery>.)
Renvoie
Activateur
Exemple
Aucune.
Aucun.
Dans l’exemple ci-après, la première ligne de code définit une recherche de balise
et précise que la recherche doit porter sur quatre fichiers ; la deuxième ligne
exécute la recherche et le remplacement :
dw.setUpComplexFindReplace(’<dwquery><queryparams matchcase="false"
ignorewhitespace="true" useregexp="false"/><find><qtag qname="a"><qattribute
qname="href"
qcompare="=" qvalue="#"></qattribute><qattribute qname="onMouseOut"
qcompare="="
qvalue="" qnegate="true"></qattribute></qtag></find><replace action="setAttribute"
param1="onMouseOut"
param2="this.style.color=’#000000’;this.style.fontWeight=’normal’"/>
</dwquery>’);
dw.replaceAll();
API JavaScript de Dreamweaver
73
000ExtendingDWU.book Page 74 Thursday, June 8, 2000 3:38 PM
dreamweaver.setUpFind()
Disponibilité
3.0
Description
Prépare le terrain pour l’exécution d’une recherche de texte ou de code source
HTML en définissant les critères de recherche de l’opération dw.findNext() qui va
suivre.
Arguments
searchObject
L’argument est un objet pour lequel les propriétés suivantes peuvent être définies :
searchString est le texte à rechercher.
searchSource est une valeur booléenne indiquant si la recherche doit également
porter sur le code source HTML.
{matchCase} est une valeur booléenne indiquant si la recherche doit respecter les
majuscules et les minuscules. Si cette propriété n’est pas définie, elle prend par
défaut la valeur FALSE.
{ignoreWhitespace} est une valeur booléenne indiquant si les différences entre les
espaces blancs doivent être ignorées. ignoreWhitespace prend par défaut la valeur
FALSE si useRegularExpressions a pour valeur TRUE et la valeur TRUE si
useRegularExpressions a pour valeur FALSE.
{useRegularExpressions} est une valeur booléenne indiquant si la chaîne de
recherche (searchString) utilise des expressions régulières. Si cette propriété n’est
pas définie, elle prend par défaut la valeur FALSE.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
L’exemple de code suivant montre comment créer un objet à rechercher
(searchObject) de trois façons différentes :
var searchParams;
searchParams.searchString = ‘bgcolor="#FFCCFF"’;
searchParams.searchSource = true;
dw.setUpFind(searchParams);
var searchParams = {searchString: ‘bgcolor="#FFCCFF"’, searchSource: true};
dw.setUpFind(searchParams);
dw.setUpFind({searchString: ‘bgcolor="#FFCCFF"’, searchSource: true});
dreamweaver.setUpFindReplace()
Disponibilité
Description
74
Chapitre 3
3.0
Prépare le terrain pour l’exécution d’une recherche de texte ou de code source
HTML en définissant les critères de recherche et le cadre d’application de
l’opération dw.replace() dw.replaceAll() qui va suivre.
000ExtendingDWU.book Page 75 Thursday, June 8, 2000 3:38 PM
Arguments
searchObject
L’argument est un objet pour lequel les propriétés suivantes peuvent être définies :
searchString est le texte à rechercher.
replaceString est le texte à substituer au texte recherché.
searchSource est une valeur booléenne indiquant si la recherche doit également
porter sur le code source HTML.
{matchCase} est une valeur booléenne indiquant si la recherche doit respecter les
majuscules et les minuscules. Si cette propriété n’est pas définie, elle prend par
défaut la valeur FALSE.
{ignoreWhitespace} est une valeur booléenne indiquant si les différences entre les
espaces blancs doivent être ignorées. ignoreWhitespace prend par défaut la valeur
FALSE si useRegularExpressions a pour valeur TRUE et la valeur TRUE si
useRegularExpressions a pour valeur FALSE.
{useRegularExpressions} est une valeur booléenne indiquant si la chaîne de
recherche (searchString) utilise des expressions régulières. Si cette propriété n’est
pas définie, elle prend par défaut la valeur FALSE.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
L’exemple de code suivant montre comment créer un objet à rechercher
(searchObject) de trois façons différentes :
var searchParams;
searchParams.searchString = ‘bgcolor="#FFCCFF"’;
searchParams.searchString = ‘bgcolor="#FFCCFF"’;
searchParams.searchSource = true;
dw.setUpFindReplace(searchParams);
var searchParams = {searchString: ‘bgcolor="#FFCCFF"’, searchSource:
‘bgcolor="#FFCCFF"’, searchSource: true};
dw.setUpFindReplace(searchParams);
dw.setUpFindReplace({searchString: ‘bgcolor="#FFCCFF"’, searchSource:
‘bgcolor="#FFCCFF"’, searchSource: true});
dreamweaver.showFindDialog()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Rechercher.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.canShowFindDialog()
API JavaScript de Dreamweaver
75
000ExtendingDWU.book Page 76 Thursday, June 8, 2000 3:38 PM
dreamweaver.showFindReplaceDialog()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Remplacer.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.canShowFindDialog()
Fonctions relatives aux cadres et aux jeux de
cadres
Ces fonctions permettent uniquement d’effectuer les deux opérations suivantes :
obtenir le nom des cadres constituant un jeu de cadres et diviser un cadre en deux.
dom.getFrameNames()
Disponibilité
3.0
Description
Obtient la liste de tous les cadres nommés du jeu de cadres.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Tableau de chaînes, chacune correspondant à un cadre du jeu de cadres en cours.
La fonction ignore tous les cadres non nommés. Si aucun des cadres du jeu de
cadres n’est nommé, un tableau vide est renvoyé.
Aucun.
Pour un document contenant quatre cadres, dont deux sont nommés, un appel à
la fonction dw.getDocumentDOM().getFrameNames() pourrait renvoyer un tableau
contenant les chaînes suivantes :
"navframe"
"main_content"
dom.splitFrame()
Disponibilité
3.0
Description
Fractionne le cadre sélectionné verticalement ou horizontalement.
Arguments
splitDirection
L’argument doit avoir l’une des valeurs suivantes : "up", "down", "left" ou "right".
Renvoie
Activateur
76
Chapitre 3
Aucune.
dom.canSplitFrame()
000ExtendingDWU.book Page 77 Thursday, June 8, 2000 3:38 PM
Fonctions de modification générales
Ces fonctions permettent d’effectuer des opérations de modification courantes
dans la fenêtre de document. Elles permettent d’insérer du texte, du code HTML
et des objets, d’appliquer, de modifier et de supprimer des marqueurs de police et
de caractère, de modifier des balises et des attributs, etc.
dom.applyCharacterMarkup()
Disponibilité
3.0
Description
Applique à la sélection le type de marqueur de caractère spécifié. Si la sélection est
un point d’insertion, applique les marqueurs de caractère spécifiés au texte saisi
après le point d’insertion.
Arguments
tagName
L’argument est le nom de balise associé à ce type de marqueur de caractère. Il doit
s’agir de l’une des chaînes suivantes : "b", "cite", "code", "dfn", "em", "i", "kbd", "samp", "s",
"strong", "tt", "u" ou "var".
Renvoie
Activateur
Aucune.
Aucun.
dom.applyFontMarkup()
Disponibilité
3.0
Description
Applique à la sélection en cours la balise FONT, ainsi que l’attribut spécifié et sa
valeur.
Arguments
attribute, value
Le premier argument doit être "face", "size" ou "color".
Le second argument est la valeur qui devrait être affectée à l’attribut, par
exemple "Arial, Helvetica, sans-serif", "5" ou "#FF0000".
Renvoie
Activateur
Aucune.
Aucun.
dom.deleteSelection()
Disponibilité
3.0
Description
Supprime la sélection du document.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
77
000ExtendingDWU.book Page 78 Thursday, June 8, 2000 3:38 PM
dom.editAttribute()
Disponibilité
3.0
Description
Affiche l’interface permettant de modifier l’attribut spécifié. Dans la plupart des
cas, il s’agit d’une boîte de dialogue. Cette fonction n’est valide que pour le
document actif.
Arguments
attribute
Renvoie
Activateur
Aucune.
Aucun.
dom.exitBlock()
Disponibilité
3.0
Description
Quitte le bloc de paragraphe ou d’en-tête en cours et place le curseur à l’extérieur
de tous les éléments de bloc.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.getFontMarkup()
Disponibilité
3.0
Description
Obtient la valeur de l’attribut spécifié de la balise FONT pour la sélection en cours.
Arguments
attribute
L’argument doit être "face", "size" ou "color".
Renvoie
Activateur
Chaîne contenant la valeur de l’attribut spécifié, ou chaîne vide si l’attribut n’est
pas défini.
Aucun.
dom.getLinkHref()
Disponibilité
Description
Obtient le lien qui entoure la sélection en cours. Revient à effectuer une boucle
sur les parents et les grands-parents du nœud en cours jusqu’à ce qu’un lien soit
rencontré, puis à appeler la fonction getAttribute(’HREF’) sur ce lien.
Arguments
Aucun.
Renvoie
Activateur
78
3.0
Chapitre 3
Chaîne contenant le nom du fichier lié, exprimé sous la forme d’une URL de type
file://.
Aucun.
000ExtendingDWU.book Page 79 Thursday, June 8, 2000 3:38 PM
dom.getLinkTarget()
Disponibilité
3.0
Description
Obtient la cible du lien qui entoure la sélection en cours. Revient à effectuer une
boucle sur les parents et les grands-parents du nœud en cours jusqu’à ce qu’un lien
soit rencontré, puis à appeler la fonction getAttribute(’TARGET’) sur ce lien.
Arguments
Aucun.
Renvoie
Activateur
Chaîne contenant la valeur de l’attribut TARGET spécifié pour le lien, ou chaîne
vide si aucune cible n’est spécifiée.
Aucun.
dom.getListTag()
Disponibilité
3.0
Description
Obtient le style de la liste sélectionnée.
Arguments
Aucun.
Renvoie
Activateur
Chaîne contenant la balise associée à la liste ("ul", "ol" ou "dl"), ou chaîne vide si
aucune balise n’est associée à la liste. Cette valeur est toujours renvoyée en
minuscules.
Aucun.
dom.getTextAlignment()
Disponibilité
3.0
Description
Obtient l’alignement du bloc contenant la sélection.
Arguments
Aucun.
Renvoie
Activateur
Chaîne contenant la valeur de l’attribut ALIGN de la balise associée au bloc, ou
chaîne vide si cet attribut n’est pas défini. Cette valeur est toujours renvoyée en
minuscules.
Aucun.
API JavaScript de Dreamweaver
79
000ExtendingDWU.book Page 80 Thursday, June 8, 2000 3:38 PM
dom.getTextFormat()
Disponibilité
3.0
Description
Obtient le format du bloc contenant la sélection.
Arguments
Aucun.
Renvoie
Activateur
Chaîne contenant la balise de bloc associée au texte (par exemple "p", "h1", "pre",
etc.) ou chaîne vide si aucune balise de bloc n’est associée à la sélection. Cette
valeur est toujours renvoyée en minuscules.
Aucun.
dom.hasCharacterMarkup()
Disponibilité
3.0
Description
Vérifie si le marqueur de caractère spécifié est déjà associé à la sélection.
Arguments
markupTagName
L’argument est le nom de la balise vérifiée. Il doit s’agir de l’une des chaînes
suivantes : "b", "cite", "code", "dfn", "em", "i", "kbd", "samp", "s", "strong", "tt", "u", ou "var".
Renvoie
Activateur
Valeur booléenne indiquant si le marqueur de caractère spécifié est associé à la
sélection entière. Cette fonction renvoie la valeur FALSE si le marqueur spécifié
n’est associé qu’à une partie de la sélection.
Aucun.
dom.indent()
Disponibilité
3.0
Description
Applique un retrait à la sélection à l’aide des balises BLOCKQUOTE. Si la sélection
figure dans une liste, cette fonction lui applique un retrait en imbriquant une
autre liste du même type dans la liste en cours.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.insertHTML()
Disponibilité
3.0
Description
Insère un contenu HTML dans le document, au point d’insertion en cours.
Arguments
contentToInsert, {bReplaceCurrentSelection}
Le premier argument est le contenu à insérer.
80
Chapitre 3
000ExtendingDWU.book Page 81 Thursday, June 8, 2000 3:38 PM
Le second argument est une valeur booléenne indiquant si le contenu spécifié
doit remplacer la sélection en cours. Si l’argument bReplaceCurrentSelection a
pour valeur False, le contenu est inséré après la sélection en cours.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
Le code suivant insère <b>130</b> dans le document en cours :
var theDOM = dw.getDocumentDOM();
theDOM.insertHTML(’<b>130</b>’);
Ceci se présente sous la forme suivante dans la fenêtre de document :
dom.insertObject()
Disponibilité
3.0
Description
Insère l’objet spécifié et invite l’utilisateur à définir des paramètres, le cas échéant.
Arguments
objectName
L’argument est le nom d’un objet du dossier Configuration/Objects.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
Un appel à la fonction dreamweaver.getDocumentDOM().insertObject(’Button’); insère
un bouton formulaire dans le document, au point d’insertion ou après la sélection
en cours.
Remarque : bien que les fichiers d’objet puissent être stockés dans des dossiers distincts, il
est important que le nom de chaque fichier soit unique. En effet, si le dossier Forms et le
dossier MyObjects contiennent chacun un fichier nommé Button.htm, par exemple,
Dreamweaver n’est pas capable de faire la différence entre les deux.
dom.insertText()
Disponibilité
3.0
Description
Insère un contenu dans le document, au point d’insertion en cours.
Arguments
contentToInsert, {bReplaceCurrentSelection}
API JavaScript de Dreamweaver
81
000ExtendingDWU.book Page 82 Thursday, June 8, 2000 3:38 PM
Le premier argument est le contenu à insérer.
Le second argument est une valeur booléenne indiquant si le contenu spécifié
doit remplacer la sélection en cours. Si l’argument bReplaceCurrentSelection a
pour valeur FALSE, le contenu est inséré après la sélection en cours.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
Le code suivant insère &lt;b&gt;130&lt;/b&gt; dans le document en cours :
var theDOM = dw.getDocumentDOM();
theDOM.insertText(’<b>130</b>’);
Ceci se présente sous la forme suivante dans la fenêtre de document :
dom.newBlock()
Disponibilité
3.0
Description
Crée un nouveau bloc doté de la même balise et des mêmes attributs que le bloc
contenant la sélection en cours, ou, si le curseur se trouve à l’extérieur de tous les
blocs, crée un nouveau paragraphe.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
Si la sélection en cours se trouve à l’intérieur d’un paragraphe centré, un appel à la
fonction dreamweaver.getDocumentDOM().newBlock() insère <p align="center"> après
le paragraphe en cours.
dom.outdent()
Disponibilité
82
3.0
Description
Applique un retrait négatif à la sélection.
Arguments
Aucun.
Chapitre 3
000ExtendingDWU.book Page 83 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Aucune.
Aucun.
dom.removeCharacterMarkup()
Disponibilité
3.0
Description
Supprime de la sélection le type de marqueur de caractère spécifié.
Arguments
tagName
L’argument est le nom de balise associé à ce type de marqueur de caractère. Il doit
s’agir de l’une des chaînes suivantes : "b", "cite", "code", "dfn", "em", "i", "kbd", "samp", "s",
"strong", "tt", "u" ou "var".
Renvoie
Activateur
Aucune.
Aucun.
dom.removeFontMarkup()
Disponibilité
3.0
Description
Supprime d’une balise FONT l’attribut spécifié, ainsi que sa valeur. Si, après la
suppression de l’attribut, il ne reste que la balise <FONT>, celle-ci est également
supprimée.
Arguments
attribute
L’argument doit être "face", "size" ou "color".
Renvoie
Activateur
Aucune.
Aucun.
dom.removeLink()
Disponibilité
3.0
Description
Supprime l’hyperlien de la sélection.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
83
000ExtendingDWU.book Page 84 Thursday, June 8, 2000 3:38 PM
dom.resizeSelection()
Disponibilité
3.0
Description
Redimensionne l’objet sélectionné et lui applique les nouvelles dimensions
spécifiées. Pour redimensionner un calque ou une zone réactive, utilisez la
fonction dom.resizeSelectionBy().
Arguments
newWidth, newHeight
Renvoie
Activateur
Aucune.
Aucun.
dom.setAttributeWithErrorChecking()
Disponibilité
3.0
Description
Affecte à l’attribut spécifié la valeur indiquée pour la sélection en cours et affiche
une invite utilisateur si le type de valeur est incorrect ou si la valeur n’est pas
comprise dans la plage spécifiée. Cette fonction n’est valide que pour le document
actif.
Arguments
attribute, value
Renvoie
Activateur
Aucune.
Aucun.
dom.setLinkHref()
Disponibilité
3.0
Description
Transforme la sélection en hyperlien ou modifie la valeur du lien qui entoure la
sélection en cours.
Arguments
linkHREF
L’argument est une URL (chemin relatif au document ou à la racine, ou URL
absolue) représentant la cible du lien. Si aucun argument n’est défini, la boîte de
dialogue Sélectionner fichier HTML s’affiche.
Renvoie
Activateur
Aucune.
dom.canSetLinkHref()
dom.setLinkTarget()
Disponibilité
84
3.0
Description
Définit la cible du lien qui entoure la sélection en cours. Revient à effectuer une
boucle sur les parents et les grands-parents du nœud en cours jusqu’à ce qu’un lien
soit rencontré, puis à appeler la fonction setAttribute(’TARGET’) sur ce lien.
Arguments
{linkTarget}
Chapitre 3
000ExtendingDWU.book Page 85 Thursday, June 8, 2000 3:38 PM
L’argument est une chaîne représentant le nom d’un cadre ou d’une fenêtre, ou
l’une des cibles réservées ("_self", "_parent", "_top" ou "_blank"). Si aucun argument
n’est défini, la boîte de dialogue Définir la cible s’affiche.
Renvoie
Activateur
Aucune.
Aucun.
dom.setListBoxKind()
Disponibilité
3.0
Description
Modifie le type du menu SELECT sélectionné.
Arguments
kind
L’argument doit être "menu" ou "list box".
Renvoie
Activateur
Aucune.
Aucun.
dom.showListPropertiesDialog()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Propriétés de la liste.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canShowListPropertiesDialog()
dom.setListTag()
Disponibilité
3.0
Description
Définit le style de la liste sélectionnée.
Arguments
listTag
L’argument est la balise associée à la liste. Il doit s’agir de "ol", "ul", "dl" ou d’une
chaîne vide.
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
85
000ExtendingDWU.book Page 86 Thursday, June 8, 2000 3:38 PM
dom.setTextAlignment()
Disponibilité
3.0
Description
Affecte la valeur spécifiée à l’attribut ALIGN du bloc contenant la sélection.
Arguments
alignValue
L’argument doit être "left", "center" ou "right".
Renvoie
Activateur
Aucune.
Aucun.
dom.setTextFieldKind()
Disponibilité
3.0
Description
Définit le format du champ texte sélectionné.
Arguments
fieldType
L’argument doit être "input", "textarea" ou "password".
Renvoie
Activateur
Aucune.
Aucun.
dom.showFontColorDialog()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue de la pipette de couleurs.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.deleteSelection()
Disponibilité
Description
Supprime la sélection dans le document actif, dans la fenêtre Site, ou, sur
Macintosh, dans le champ modifiable actif d’une boîte de dialogue ou d’une
palette flottante.
Arguments
Aucun.
Renvoie
Activateur
86
3.0
Chapitre 3
Aucune.
dreamweaver.canDeleteSelection()
000ExtendingDWU.book Page 87 Thursday, June 8, 2000 3:38 PM
dreamweaver.editFontList()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Modifier la liste des polices.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.getFontList()
Disponibilité
3.0
Description
Obtient la liste de tous les groupes de polices apparaissant dans l’inspecteur de
propriétés de texte et la boîte de dialogue Définition du style.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Tableau de chaînes, chacune représentant un élément de la liste des polices.
Aucun.
Si vous avez effectué une installation par défaut de Dreamweaver, un appel à la
fonction dw.getFontList() renverra un tableau contenant les éléments suivants :
"Arial, Helvetica, sans-serif"
"Times New Roman, Times, serif"
"Courier New, Courier, mono"
"Georgia, Times New Roman, Times, serif"
"Verdana, Arial, Helvetica, sans-serif"
dreamweaver.getKeyState()
Disponibilité
3.0
Description
Détermine si la touche de modification spécifiée est enfoncée.
Arguments
key
L’argument doit avoir l’une des valeurs suivantes : "Cmd", "Ctrl", "Alt" ou "Shift". Sous
Windows, "Cmd" et "Ctrl" désignent la touche Contrôle ; sur Macintosh, "Alt" désigne
la touche Option.
Renvoie
Activateur
Exemple
Valeur booléenne indiquant si la touche est enfoncée.
Aucun.
Le code suivant vérifie si les touches Maj et Ctrl (Windows) ou Maj et Commande
(Macintosh) sont enfoncées avant d’effectuer une opération.
if (dw.getKeyState("Shift") && dw.getKeyState("Cmd")){
// execute code
}
API JavaScript de Dreamweaver
87
000ExtendingDWU.book Page 88 Thursday, June 8, 2000 3:38 PM
Fonctions globales relatives aux applications
Ces fonctions agissent sur l’ensemble d’une application. Elles permettent, entre
autres, de quitter une application et d’accéder aux préférences.
dreamweaver.getShowDialogsOnInsert()
Disponibilité
3.0
Description
Vérifie si l’option Afficher la boîte de dialogue lors de l’insertion d’objets est
activée dans les préférences générales.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si cette option est activée.
Aucun.
dreamweaver.quitApplication()
Disponibilité
3.0
Description
Quitte Dreamweaver lorsque l’exécution du script appelant cette fonction prend
fin.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.showAboutBox()
Disponibilité
3.0
Description
Ouvre la boîte d’information A propos de.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.showDynamicDataDialog()
Disponibilité
88
Chapitre 3
Dreamwaver UltraDev 1.0
000ExtendingDWU.book Page 89 Thursday, June 8, 2000 3:38 PM
Description
Affiche la boîte de dialogue Données dynamiques ou Texte dynamique qui
demeure à l’écran aussi longtemps que l’utilisateur ne la referme pas. Si
l’utilisateur clique sur OK, la fonction showDynamicDataDialog() renvoie une chaîne
qui sera insérée dans le document de l’utilisateur. Cette chaîne provient de la
fonction API source de données, generateDynamicDataRef() et est transmise dans la
fonction API format de données, formatDynamicDataRef() ; la valeur renvoyée par
formatDynamicDataRef() est celle renvoyée par showDynamicDataDialog().)
Arguments
source, title
source est une chaîne contenant un code source HTML, représentant l’objet de
données dynamiques. Il s’agit de la même chaîne renvoyée par un appel
précédent à cette fonction. Celle-ci utilise le contenu de source pour initialiser
toutes les commandes de la boîte de dialogue afin qu’ils s’affichent exactement
de la même façon que lorsque l’utilisateur appuie sur OK pour créer cette
chaîne.
UltraDev transmet cette chaîne à inspectDynamicDataRef(), afin de déterminer si
celle-ci correspond à l’un des nœuds de l’arborescence. Dans ce cas, le nœud est
sélectionné lorsque la boîte de dialogue s’affiche. Vous pouvez également
transmettre une chaîne vide, laquelle n’initialisera pas la boîte de dialogue. Par
exemple, une boîte de dialogue n’est pas initialisée lorsqu’elle est utilisée pour
créer un nouvel élément.
title est la chaîne contenant le texte devant apparaître dans la barre de titres de la
boîte de dialogue. Cet argument est optionnel. S’il n’est pas fourni, UltraDev
affichera Données dynamiques dans la barre de titre.
Renvoie
Une chaîne représentant l’objet de données dynamiques si l’utilisateur clique sur
OK.
dreamweaver.showPreferencesDialog()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Préférences.
Arguments
{whichTab}
L’argument doit être l’une des chaînes suivantes : "general", "external editors",
"floaters", "fonts", "highlighting", "html colors", "html format", "html rewriting", "invisible
elements", "layers", "browsers", "quick tag editor", "site ftp", "status bar", "css styles" ou
"translation". Si Dreamweaver ne reconnaît pas dans l’argument un nom de volet
valide ou qu’aucun argument n’est défini, la boîte de dialogue ouvre le dernier
volet actif.
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
89
000ExtendingDWU.book Page 90 Thursday, June 8, 2000 3:38 PM
Fonctions globales relatives aux documents.
Ces fonctions agissent sur l’ensemble d’un document. Elles permettent d’effectuer
des vérifications orthographiques, de vérifier les navigateurs cibles, de définir les
propriétés des pages et de déterminer les références d’objet correctes des éléments
du document.
dom.checkSpelling()
Disponibilité
3.0
Description
Vérifie l’orthographe sur l’ensemble du document (en ouvrant la boîte de dialogue
Vérifier l’orthographe, si nécessaire) et prévient l’utilisateur lorsque la vérification
est terminée.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.checkTargetBrowsers()
Disponibilité
3.0
Description
Vérifie le navigateur cible du document. Pour vérifier le navigateur cible d’un
dossier ou d’un groupe de fichiers, utilisez la fonction site.checkTargetBrowsers()
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.showPagePropertiesDialog()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Propriétés de la page.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.getElementRef()
Disponibilité
Description
90
Chapitre 3
2.0
Obtient la référence d’objet Netscape ou IE pour un objet tag spécifique de
l’arborescence DOM.
000ExtendingDWU.book Page 91 Thursday, June 8, 2000 3:38 PM
Arguments
NSorIE, tagObject
Le premier argument doit être "NS 4.0" ou "IE 4.0". En effet, le DOM et les règles
relatives aux références imbriquées diffèrent dans Navigator 4.0 et Internet
Explorer 4.0. Cet argument permet d’indiquer à quel navigateur doit
correspondre la référence renvoyée.
Le second argument est un objet tag de l’arborescence DOM.
Renvoie
Chaîne représentant une référence JavaScript valide à l’objet, telle que
document.layers[’myLayer’].
Dreamweaver renvoie des références Internet Explorer correctes pour les balises
suivantes : A, AREA, APPLET, EMBED, DIV, SPAN, INPUT, SELECT, OPTION, TEXTAREA,
OBJECT et IMG.
Dreamweaver renvoie des références Navigator correctes pour les balises
suivantes : A, AREA, APPLET, EMBED, LAYER, ILAYER, SELECT, OPTION, TEXTAREA,
OBJECT et IMG et pour les balises DIV et SPAN à positionnement absolu. Pour les
balises DIV et SPAN dont le positionnement n’est pas absolu, Dreamweaver
renvoie "cannot reference <tag>".
Dreamweaver ne renvoie pas de références pour les objets non nommés. Si un
objet ne contient pas d’attribut NAME ou ID, Dreamweaver renvoie "unnamed
<tag>". Si le navigateur ne prend pas en charge une référence par nom,
Dreamweaver fait référence à l’objet à l’aide de son index (par exemple
document.myform.applets[3]).
Dreamweaver renvoie les références des objets nommés figurant dans des
formulaires ou des calques non nommés (par exemple
document.forms[2].myCheckbox).
Activateur
Aucun.
Fonctions relatives à l’historique
Ces fonctions permettent d’annuler, de rétablir, de mémoriser et d’exécuter les
étapes figurant dans la palette Historique. Par étape, on entend une modification
apportée à un document (ou à une sélection dans le document) pouvant être
reproduite. Les méthodes de l’objet dreamweaver.historyPalette permettent de
contrôler ou d’agir sur la sélection dans la palette Historique et non dans le
document en cours.
dom.redo()
Disponibilité
3.0
Description
Rétablit l’étape qui vient d’être annulée dans le document.
Arguments
Aucun.
API JavaScript de Dreamweaver
91
000ExtendingDWU.book Page 92 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Aucune.
dom.canRedo()
dom.undo()
Disponibilité
3.0
Description
Annule l’étape qui vient d’être exécutée dans le document.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canUndo()
dreamweaver.getRedoText()
Disponibilité
3.0
Description
Obtient le texte associé à l’opération de modification qui sera rétablie si
l’utilisateur choisit Edition > Rétablir ou s’il appuie sur Ctrl+Y (Windows) ou sur
Commande+Y (Macintosh).
Arguments
Aucun.
Renvoie
Activateur
Exemple
Chaîne contenant le texte associé à l’opération de modification qui sera rétablie.
Aucun.
Si la dernière action de l’utilisateur a consisté à mettre la sélection en gras, un
appel à la fonction dw.getRedoText() renverra "Repeat Apply Bold".
dreamweaver.getUndoText()
Disponibilité
Description
Obtient le texte associé à l’opération de modification qui sera annulée si
l’utilisateur choisit Edition > Annuler ou s’il appuie sur Ctrl+Z (Windows) ou sur
Commande+Z (Macintosh).
Arguments
Aucun.
Renvoie
Activateur
Exemple
92
3.0
Chapitre 3
Chaîne contenant le texte associé à l’opération de modification qui sera annulée.
Aucun.
Si la dernière action de l’utilisateur a consisté à appliquer un style CSS à un texte
sélectionné, un appel à la fonction dw.getUndoText() renverra "Undo Apply <span>".
000ExtendingDWU.book Page 93 Thursday, June 8, 2000 3:38 PM
dreamweaver.playRecordedCommand()
Disponibilité
3.0
Description
Exécute la commande mémorisée dans le document actif.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.canPlayRecordedCommand()
dreamweaver.redo()
Disponibilité
3.0
Description
Rétablit l’étape qui vient d’être annulée dans la fenêtre de document, la boîte de
dialogue, la palette flottante ou le volet de la fenêtre Site en cours.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.canRedo()
dreamweaver.startRecording()
Disponibilité
3.0
Description
Démarre la mémorisation des étapes dans le document actif. La commande
précédemment mémorisée est immédiatement effacée.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.isRecording()
(doit renvoyer FALSE).
dreamweaver.stopRecording()
Disponibilité
3.0
Description
Arrête la mémorisation sans intervention de l’utilisateur.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.isRecording()
(doit renvoyer TRUE)
API JavaScript de Dreamweaver
93
000ExtendingDWU.book Page 94 Thursday, June 8, 2000 3:38 PM
dreamweaver.undo()
Disponibilité
3.0
Description
Annule l’étape précédente dans la fenêtre de document, la boîte de dialogue, la
palette flottante ou le volet de la fenêtre Site en cours.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.canUndo()
dreamweaver.historyPalette.clearSteps()
Disponibilité
3.0
Description
Efface toutes les étapes de la palette Historique et désactive les options de menu
Annuler et Rétablir.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.historyPalette.copySteps()
Disponibilité
3.0
Description
Copie les étapes spécifiées de l’historique dans le Presse-papiers. Dreamweaver
prévient l’utilisateur de la possibilité de conséquences inattendues dans le cas où
les étapes spécifiées contiendraient une action qui ne peut pas être reproduite.
Arguments
arrayOfIndices
L’argument est un tableau d’index de position dans la palette Historique.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
L’exemple de code suivant sélectionne les quatre premières étapes de la palette
Historique :
dw.historyPalette.copySteps([0,1,2,3]);
dreamweaver.historyPalette.getSelectedSteps()
Disponibilité
94
3.0
Description
Détermine quelle section de la palette Historique est sélectionnée.
Arguments
Aucun.
Chapitre 3
000ExtendingDWU.book Page 95 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Exemple
Tableau contenant les index de position de toutes les étapes sélectionnées.
Aucun.
Si la seconde, la troisième et la quatrième étapes sont sélectionnées dans la palette
Historique, comme le montre l’illustration ci-après, un appel à la fonction
dw.historyPalette.getSelectedSteps() renverra [1,2,3].
dreamweaver.historyPalette.getStepCount()
Disponibilité
3.0
Description
Obtient le nombre d’étapes figurant dans la palette Historique.
Arguments
Aucun.
Renvoie
Activateur
Entier représentant le nombre d’étapes que contient actuellement la palette
Historique.
Aucun.
dreamweaver.historyPalette.getStepsAsJavaScript()
Disponibilité
3.0
Description
Obtient l’équivalent JavaScript des étapes sélectionnées.
Arguments
Aucun.
Renvoie
Activateur
Chaîne contenant le code JavaScript correspondant aux étapes sélectionnées.
Aucun.
API JavaScript de Dreamweaver
95
000ExtendingDWU.book Page 96 Thursday, June 8, 2000 3:38 PM
Exemple
Si les trois étapes indiquées dans l’illustration ci-après sont sélectionnées dans la
palette Historique, un appel à la fonction
dw.historyPalette.getStepsAsJavaScript(dw.historyPalette.getSelectedSteps()) renvoie
"dw.getDocumentDOM().insertText(’Hey diddle diddle, a cat and a fiddle, the cow jumped
over the moon.’);\ndw.getDocumentDOM().newBlock();\n
dw.getDocumentDOM().insertHTML(’<img src=\"../wdw99/50browsers/images/sun.gif\">’,
true);\n":
dreamweaver.historyPalette.getUndoState()
Disponibilité
3.0
Description
Obtient l’état d’annulation en cours.
Arguments
Aucun.
Renvoie
Activateur
Position du marqueur d’annulation dans la palette Historique.
Aucun.
dreamweaver.historyPalette.replaySteps()
Disponibilité
3.0
Description
Réexécute les étapes spécifiées de l’historique dans le document actif.
Dreamweaver prévient l’utilisateur de la possibilité de conséquences inattendues
dans le cas où les étapes spécifiées contiendraient une action qui ne peut pas être
reproduite.
Arguments
arrayOfIndices
L’argument est un tableau d’index de position dans la palette Historique.
Renvoie
Activateur
Exemple
96
Chapitre 3
Aucune.
Aucun.
Un appel à la fonction dw.historyPalette.replaySteps([0,2,3]) réexécute la première, la
troisième et la quatrième étapes de la palette Historique.
000ExtendingDWU.book Page 97 Thursday, June 8, 2000 3:38 PM
dreamweaver.historyPalette.saveAsCommand()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Enregistrer comme commande et permet à l’utilisateur
d’enregistrer les étapes spécifiées sous forme de commande. Dreamweaver prévient
l’utilisateur de la possibilité de conséquences inattendues dans le cas où les étapes
spécifiées contiendraient une action qui ne peut pas être reproduite.
Arguments
arrayOfIndices
L’argument est un tableau d’index de position dans la palette Historique.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
Pour enregistrer comme commande la quatrième, la sixième et la huitième
commandes de la palette Historique, vous utiliseriez le code suivant :
dw.historyPalette.saveAsCommand([3,5,7]);
dreamweaver.historyPalette.setSelectedSteps()
Disponibilité
3.0
Description
Sélectionne les étapes spécifiées dans la palette Historique.
Arguments
arrayOfIndices
L’argument est un tableau d’index de position dans la palette Historique. Si aucun
argument n’est défini, toutes les étapes sont désélectionnées.
Renvoie
Aucun.
Activateur
Aucun.
Exemple
L’exemple de code suivant sélectionne la première, la seconde et la troisième étapes
de la palette Historique :
dw.historyPalette.setSelection([0,1,2]);
dreamweaver.historyPalette.getUndoState()
Disponibilité
3.0
Description
Effectue le nombre d’annulations et de rétablissements nécessaire pour arriver à
l’état d’annulation spécifié.
Arguments
undoState
L’argument est l’objet renvoyé par la fonction dw.historyPalette.getUndoState().
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
97
000ExtendingDWU.book Page 98 Thursday, June 8, 2000 3:38 PM
Fonctions relatives aux styles HTML
Ces fonctions permettent d’appliquer, de créer et de supprimer des styles HTML.
Les méthodes de l’objet dreamweaver.htmlStylePalette contrôlent ou agissent sur la
sélection dans la palette de styles HTML et non dans le document en cours.
dom.applyHTMLStyle()
Disponibilité
3.0
Description
Applique le style HTML spécifié à la sélection en cours. Cette fonction n’est valide
que pour le document actif.
Arguments
htmlStyleName
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.htmlStylePalette.deleteSelectedStyle()
Disponibilité
3.0
Description
Supprime le style sélectionné de la palette de styles HTML.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.htmlStylePalette.canEditSelection()
dreamweaver.htmlStylePalette.duplicateSelectedStyle()
Disponibilité
3.0
Description
Duplique le style sélectionné et ouvre la boîte de dialogue Définir style HTML.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.htmlStylePalette.canEditSelection()
dreamweaver.htmlStylePalette.editSelectedStyle()
Disponibilité
Description
Ouvre la boîte de dialogue Définir style HTML pour le style sélectionné.
Arguments
Aucun.
Renvoie
Activateur
98
3.0
Chapitre 3
Aucune.
dreamweaver.htmlStylePalette.canEditSelection()
000ExtendingDWU.book Page 99 Thursday, June 8, 2000 3:38 PM
dreamweaver.htmlStylePalette.getSelectedStyle()
Disponibilité
3.0
Description
Obtient le nom du style sélectionné dans la palette de styles HTML.
Arguments
Aucun.
Renvoie
Activateur
Chaîne contenant le nom du style sélectionné.
Aucun.
dreamweaver.htmlStylePalette.getStyles()
Disponibilité
3.0
Description
Obtient la liste de tous les noms de styles HTML définis.
Arguments
Aucun.
Renvoie
Activateur
Tableau de chaînes, chacune représentant le nom d’un style HTML. Si aucun style
HTML n’est défini, la fonction renvoie un tableau vide.
Aucun.
dreamweaver.htmlStylePalette.newStyle()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Définir style HTML pour définir un nouveau style.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.htmlStylePalette.setSelectedStyle()
Disponibilité
3.0
Description
Sélectionne le style spécifié de la palette de styles HTML.
Arguments
htmlStyleName
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
99
000ExtendingDWU.book Page 100 Thursday, June 8, 2000 3:38 PM
Fonctions relatives au clavier
Ces fonctions émulent les opérations de déplacement au sein d’un document à
l’aide des touches de direction, RET. ARR, SUPPR., PG. PREC et PG. SUIV.
Outre les fonctions générales telles que arrowLeft() (équivalent de la touche de
direction Gauche) et backspaceKey() (équivalent de la touche RET. ARR),
Dreamweaver offre également des méthodes permettant d’accéder au mot ou au
paragraphe suivant ou précédent, et au début et à la fin d’une ligne ou d’un
document.
dom.arrowDown()
Disponibilité
3.0
Description
Déplace le curseur vers le bas du nombre de lignes spécifié.
Arguments
{nTimes}, {bShiftIsDown}
Le premier argument indique de combien de lignes vers le bas le curseur doit
être déplacé. Si cet argument n’est pas défini, il prend par défaut la valeur 1.
Le second argument est une valeur booléenne indiquant s’il faut étendre la
sélection. Si cet argument n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Aucune.
Aucun.
dom.arrowLeft()
Disponibilité
3.0
Description
Déplace le curseur vers la gauche du nombre de colonnes spécifié.
Arguments
{nTimes}, {bShiftIsDown}
Le premier argument indique de combien de colonnes vers la gauche le curseur
doit être déplacé. Si cet argument n’est pas défini, il prend par défaut la
valeur 1.
Le second argument est une valeur booléenne indiquant s’il faut étendre la
sélection. Si cet argument n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Aucune.
Aucun.
dom.arrowRight()
Disponibilité
100
3.0
Description
Déplace le curseur vers la droite du nombre de colonnes spécifié.
Arguments
{nTimes}, {bShiftIsDown}
Chapitre 3
000ExtendingDWU.book Page 101 Thursday, June 8, 2000 3:38 PM
Le premier argument indique de combien de colonnes vers la droite le curseur
doit être déplacé. Si cet argument n’est pas défini, il prend par défaut la
valeur 1.
Le second argument est une valeur booléenne indiquant s’il faut étendre la
sélection. Si cet argument n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Aucune.
Aucun.
dom.arrowUp()
Disponibilité
3.0
Description
Déplace le curseur vers le haut du nombre de lignes spécifié.
Arguments
{nTimes}, {bShiftIsDown}
Le premier argument indique de combien de lignes vers le haut le curseur doit
être déplacé. Si cet argument n’est pas défini, il prend par défaut la valeur 1.
Le second argument est une valeur booléenne indiquant s’il faut étendre la
sélection. Si cet argument n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Aucune.
Aucun.
dom.backspaceKey()
Disponibilité
3.0
Description
Revient à appuyer sur la touche RET. ARR le nombre de fois spécifié. Le résultat
obtenu sera différent selon qu’il y a une sélection en cours ou simplement un
point d’insertion.
Arguments
{nTimes}
L’argument est le nombre de retours arrière souhaités. S’il n’est pas défini, il prend
par défaut la valeur 1.
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
101
000ExtendingDWU.book Page 102 Thursday, June 8, 2000 3:38 PM
dom.deleteKey()
Disponibilité
3.0
Description
Revient à appuyer sur la touche SUPPR. le nombre de fois spécifié. Le résultat
obtenu sera différent selon qu’il y a une sélection en cours ou simplement un
point d’insertion.
Arguments
{nTimes}
L’argument est le nombre de suppressions souhaitées. S’il n’est pas défini, il prend
par défaut la valeur 1.
Renvoie
Activateur
Aucune.
Aucun.
dom.endOfDocument()
Disponibilité
3.0
Description
Déplace le point d’insertion à la fin du document, dans la fenêtre active (c’est-àdire après le dernier contenu visible de la fenêtre de document ou après la balise
HTML de fermeture de l’inspecteur HTML, selon le cas).
Arguments
{bShiftIsDown}
L’argument est une valeur booléenne indiquant s’il faut étendre la sélection. S’il
n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Aucune.
Aucun.
dom.endOfLine()
Disponibilité
3.0
Description
Déplace le point d’insertion à la fin de la ligne.
Arguments
{bShiftIsDown}
L’argument est une valeur booléenne indiquant s’il faut étendre la sélection. S’il
n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
102
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 103 Thursday, June 8, 2000 3:38 PM
dom.nextParagraph()
Disponibilité
3.0
Description
Déplace le point d’insertion au début du paragraphe suivant (ou saute plusieurs
paragraphes si l’argument nTimes est supérieur à 1).
Arguments
{nTimes}, {bShiftIsDown}
Le premier argument est le nombre de paragraphes que le curseur doit sauter. Si
cet argument n’est pas défini, il prend par défaut la valeur 1.
Le second argument est une valeur booléenne indiquant s’il faut étendre la
sélection. Si cet argument n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Aucune.
Aucun.
dom.nextWord()
Disponibilité
3.0
Description
Déplace le point d’insertion au début du mot suivant (ou saute plusieurs mots si
l’argument nTimes est supérieur à 1).
Arguments
{nTimes}, {bShiftIsDown}
Le premier argument est le nombre de mots que le curseur doit sauter. Si cet
argument n’est pas défini, il prend par défaut la valeur 1.
Le second argument est une valeur booléenne indiquant s’il faut étendre la
sélection. Si cet argument n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Aucune.
Aucun.
dom.pageDown()
Disponibilité
3.0
Description
Déplace le point d’insertion d’une page vers le bas (équivalent de la touche PG.
SUIV).
Arguments
{nTimes}, {bShiftIsDown}
Le premier argument indique de combien de pages vers le bas le curseur doit
être déplacé. Si cet argument n’est pas défini, il prend par défaut la valeur 1.
Le second argument est une valeur booléenne indiquant s’il faut étendre la
sélection. Si cet argument n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
103
000ExtendingDWU.book Page 104 Thursday, June 8, 2000 3:38 PM
dom.pageUp()
Disponibilité
3.0
Description
Déplace le point d’insertion d’une page vers le haut (équivalent de la touche PG.
PREC).
Arguments
{nTimes}, {bShiftIsDown}
Le premier argument indique de combien de pages vers le haut le curseur doit
être déplacé. Si cet argument n’est pas défini, il prend par défaut la valeur 1.
Le second argument est une valeur booléenne indiquant s’il faut étendre la
sélection. Si cet argument n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Aucune.
Aucun.
dom.previousParagraph()
Disponibilité
3.0
Description
Déplace le point d’insertion au début du paragraphe précédent (ou saute plusieurs
paragraphes si l’argument nTimes est supérieur à 1).
Arguments
{nTimes}, {bShiftIsDown}
Le premier argument est le nombre de paragraphes que le curseur doit sauter
vers l’arrière. Si cet argument n’est pas défini, il prend par défaut la valeur 1.
Le second argument est une valeur booléenne indiquant s’il faut étendre la
sélection. Si cet argument n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Aucune.
Aucun.
dom.previousWord()
Disponibilité
3.0
Description
Déplace le point d’insertion au début du mot précédent (ou saute plusieurs mots
si l’argument nTimes est supérieur à 1).
Arguments
{nTimes}, {bShiftIsDown}
Le premier argument est le nombre de mots que le curseur doit sauter vers
l’arrière. Si cet argument n’est pas défini, il prend par défaut la valeur 1.
Le second argument est une valeur booléenne indiquant s’il faut étendre la
sélection. Si cet argument n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
104
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 105 Thursday, June 8, 2000 3:38 PM
dom.startOfDocument()
Disponibilité
3.0
Description
Déplace le point d’insertion au début du document, dans la fenêtre active (c’est-àdire avant le premier contenu visible de la fenêtre de document ou avant la balise
HTML d’ouverture de l’inspecteur HTML, selon le cas).
Arguments
{bShiftIsDown}
L’argument est une valeur booléenne indiquant s’il faut étendre la sélection. S’il
n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Aucune.
Aucun.
dom.startOfLine()
Disponibilité
3.0
Description
Déplace le point d’insertion au début de la ligne.
Arguments
{bShiftIsDown}
L’argument est une valeur booléenne indiquant s’il faut étendre la sélection. S’il
n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
Aucune.
Aucun.
Fonctions relatives aux calques et aux cartes
graphiques
Ces fonctions permettent d’aligner, de redimensionner et de déplacer des calques
et des zones réactives de carte graphique. Il est indiqué, dans la description de
chaque fonction, si cette dernière s’applique aux calques ou aux zones réactives.
dom.align()
Disponibilité
3.0
Description
Aligne à gauche, à droite, en haut ou en bas les calques ou zones réactives
sélectionnés.
Arguments
alignDirection
L’argument représente le bord sur lequel les calques ou les zones réactives doivent
être alignés, à savoir"left", "right", "top" ou "bottom".
Renvoie
Activateur
Aucune.
dom.canAlign()
API JavaScript de Dreamweaver
105
000ExtendingDWU.book Page 106 Thursday, June 8, 2000 3:38 PM
dom.arrange()
Disponibilité
3.0
Description
Déplace les zones réactives sélectionnées dans le sens indiqué.
Arguments
toBackOrFront
L’argument correspond au sens du déplacement, à savoir "front" ou "back".
Renvoie
Activateur
Aucune.
dom.canArrange()
dom.makeSizesEqual()
Disponibilité
3.0
Description
Affecte aux calques ou aux zones réactives sélectionnés la même hauteur ou la
même largeur, ou les deux. Le dernier calque ou la dernière zone réactive
sélectionnée sert de guide.
Arguments
bHoriz, bVert
Le premier argument est une valeur booléenne indiquant si les calques ou les
zones réactives doivent être redimensionnés horizontalement.
Le second argument est une valeur booléenne indiquant si les calques ou les
zones réactives doivent être redimensionnés verticalement.
Renvoie
Activateur
Aucune.
Aucun.
dom.moveSelectionBy()
Disponibilité
3.0
Description
Déplace les calques ou les zones réactives sélectionnés horizontalement et
verticalement du nombre de pixels spécifiés.
Arguments
x, y
Le premier argument indique de combien de pixels la sélection doit être
déplacée horizontalement.
Le second argument indique de combien de pixels la sélection doit être
déplacée verticalement.
Renvoie
Activateur
Aucune.
Aucun.
dom.resizeSelectionBy()
Disponibilité
106
Chapitre 3
3.0
000ExtendingDWU.book Page 107 Thursday, June 8, 2000 3:38 PM
Description
Redimensionne le calque ou la zone réactive sélectionnée.
Arguments
left, top, bottom, right
Le premier argument est la nouvelle position du bord gauche du calque ou de la
zone réactive.
Le second argument est la nouvelle position du bord supérieur du calque ou de
la zone réactive.
Le troisième argument est la nouvelle position du bord inférieur du calque ou
de la zone réactive.
Le quatrième argument est la nouvelle position du bord droit du calque ou de
la zone réactive.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
Si le calque sélectionné possède les propriétés Left, Top, Width et Height
indiquées, un appel à la fonction dw.getDocumentDOM().resizeSelectionBy(–10,–
30,30,10) revient à restaurer Left à 40, Top à 20, Width à 240 et Height à 240.
dom.setLayerTag()
Disponibilité
3.0
Description
Spécifie la balise HTML définissant le ou les calques sélectionnés.
Arguments
tagName
L’argument doit être "layer", "ilayer", "div" ou "span".
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
107
000ExtendingDWU.book Page 108 Thursday, June 8, 2000 3:38 PM
Fonctions relatives aux éléments de
bibliothèque et aux modèles
Ces fonctions permettent de gérer les opérations relatives aux modèles et aux
éléments de bibliothèque, telles que la création, la mise à jour et la rupture de liens
entre un document et un modèle ou un élément de la bibliothèque. Les méthodes
de l’objet dreamweaver.historyPalette permettent de contrôler ou d’agir sur la
sélection dans la palette de bibliothèque et non dans le document en cours. De
même, les méthodes de l’objet dreamweaver.templatePalette contrôlent ou agissent
sur la sélection dans la palette de modèles.
dom.applyTemplate()
Disponibilité
3.0
Description
Applique un modèle au document en cours. Si vous ne spécifiez aucun argument,
la boîte de dialogue Sélectionner le modèle s’affiche. Cette fonction n’est valide
que pour le document actif.
Arguments
{templateURL}
L’argument est le chemin d’un modèle disponible sur le site en cours, exprimé sous
la forme d’une URL de type file://.
Renvoie
Activateur
Aucune.
dom.canApplyTemplate()
dom.detachFromLibrary()
Disponibilité
3.0
Description
Rompt le lien entre l’instance actuellement sélectionnée d’un élément de
bibliothèque et le fichier LBI qui lui est associé en supprimant les balises de
verrouillage autour de la sélection. Revient à cliquer sur Détacher de l’original
dans l’inspecteur de propriétés.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.detachFromTemplate()
Disponibilité
Description
Détache le document en cours du modèle qui lui est associé.
Arguments
Aucun.
Renvoie
Activateur
108
3.0
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 109 Thursday, June 8, 2000 3:38 PM
dom.getAttachedTemplate()
Disponibilité
3.0
Description
Obtient le chemin du modèle associé au document.
Arguments
Aucun.
Renvoie
Activateur
Chaîne contenant le nom du modèle, exprimé sous la forme d’une URL de type
file://.
Aucun.
dom.getEditableRegionList()
Disponibilité
3.0
Description
Obtient la liste des régions modifiables dans le corps du document.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Tableau de nœuds d’élément.
Aucun.
Voir « dom.getSelectedEditableRegion() » à la page 110.
dom.getIsLibraryDocument()
Disponibilité
3.0
Description
Détermine si le document est un élément de bibliothèque.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si le document est un fichier LBI.
Aucun.
dom.getIsTemplateDocument()
Disponibilité
3.0
Description
Détermine si le document est un modèle.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si le document est un fichier DWT.
Aucun.
API JavaScript de Dreamweaver
109
000ExtendingDWU.book Page 110 Thursday, June 8, 2000 3:38 PM
dom.getSelectedEditableRegion()
Disponibilité
3.0
Description
Si la sélection ou le point d’insertion se trouve à l’intérieur d’une région
modifiable, obtient la position de cette dernière parmi toutes celles qui existent
dans le corps du document.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Index de position dans le tableau renvoyé par la fonction
dom.getEditableRegionList().
Aucun.
Le code suivant affiche une boîte de dialogue affichant le contenu de la région
modifiable sélectionnée :
var theDOM = dw.getDocumentDOM();
var edRegs = theDOM.getEditableRegionList();
var selReg = theDOM.getSelectedEditableRegion();
alert(edRegs[selReg].innerHTML);
dom.insertLibraryItem()
Disponibilité
3.0
Description
Insère une instance d’un élément de bibliothèque dans le document.
Arguments
libraryItemURL
L’argument est le chemin d’un fichier LBI, exprimé sous la forme d’une URL de
type file://.
Renvoie
Activateur
Aucune.
Aucun.
dom.markSelectionAsEditable()
Disponibilité
3.0
Description
Affiche la boîte de dialogue Nouvelle région modifiable. Lorsque l’utilisateur
clique sur Nouvelle région, Dreamweaver marque la sélection comme étant
modifiable et laisse le texte tel quel.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canMarkSelectionAsEditable()
dom.newEditableRegion()
Disponibilité
110
Chapitre 3
3.0
000ExtendingDWU.book Page 111 Thursday, June 8, 2000 3:38 PM
Description
Affiche la boîte de dialogue Nouvelle région modifiable. Lorsque l’utilisateur
clique sur Nouvelle région, Dreamweaver insère le nom de la région dans le
document, entre accolades, à l’emplacement du curseur.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canMakeNewEditableRegion()
dom.removeEditableRegion()
Disponibilité
3.0
Description
Supprime une région modifiable du document. Si cette région possède un
contenu, celui-ci est conservé ; seuls les marqueurs de région modifiable sont
supprimés.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canRemoveEditableRegion()
dom.updateCurrentPage()
Disponibilité
3.0
Description
Met à jour les modèles ou les éléments de bibliothèque du document, ou les deux.
Cette fonction n’est valide que pour le document actif.
Arguments
{typeOfUpdate}
L’argument doit être "library", "template" ou "both". S’il n’est pas défini, il prend par
défaut la valeur "both".
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.updatePages()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Mettre à jour les pages et sélectionne les options
spécifiées.
Arguments
{typeOfUpdate}
L’argument doit être "library", "template" ou "both". S’il n’est pas défini, il prend par
défaut la valeur "both".
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
111
000ExtendingDWU.book Page 112 Thursday, June 8, 2000 3:38 PM
dreamweaver.libraryPalette.deleteSelectedItem()
Disponibilité
3.0
Description
Supprime de la palette de bibliothèque l’élément de bibliothèque sélectionné et
supprime du dossier Library (bibliothèque), à la racine du site en cours, le fichier
LBI qui lui est associé. Il peut rester des instances de l’élément supprimé sur
certaines pages du site.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.libraryPalette.getSelectedItem()
Disponibilité
3.0
Description
Obtient le chemin de l’élément de bibliothèque sélectionné.
Arguments
Aucun.
Renvoie
Activateur
Chaîne contenant le nom de l’élément de bibliothèque, exprimé sous la forme
d’une URL de type file://.
Aucun.
dreamweaver.libraryPalette.newFromDocument()
Disponibilité
3.0
Description
Crée un nouvel élément de bibliothèque basé sur l’élément sélectionné dans le
document en cours.
Arguments
bReplaceCurrent
L’argument est une valeur booléenne indiquant si la sélection doit être remplacée
par une instance du nouvel élément de bibliothèque créé.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.libraryPalette.recreateFromDocument()
Disponibilité
112
3.0
Description
Crée dans le document en cours un fichier LBI correspondant à l’instance
sélectionnée d’un élément de bibliothèque. Revient à cliquer sur Créer à nouveau
dans l’inspecteur de propriétés.
Arguments
Aucun.
Chapitre 3
000ExtendingDWU.book Page 113 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.libraryPalette.renameSelectedItem()
Disponibilité
3.0
Description
Transforme le nom de l’élément de bibliothèque sélectionné en champ modifiable
et permet à l’utilisateur de renommer la sélection.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.templatePalette.deleteSelectedTemplate()
Disponibilité
3.0
Description
Supprime le modèle sélectionné du dossier des modèles.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.templatePalette.getSelectedTemplate()
Disponibilité
3.0
Description
Obtient le chemin du modèle sélectionné.
Arguments
Aucun.
Renvoie
Activateur
Chaîne contenant le chemin du modèle, exprimé sous la forme d’une URL de
type file://.
Aucun.
dreamweaver.templatePalette.newBlankTemplate()
Disponibilité
3.0
Description
Crée un nouveau modèle.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
113
000ExtendingDWU.book Page 114 Thursday, June 8, 2000 3:38 PM
dreamweaver.templatePalette.renameSelectedTemplate()
Disponibilité
3.0
Description
Transforme le nom du modèle sélectionné en champ modifiable et permet à
l’utilisateur de renommer la sélection.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
Fonctions Live Data
Vous pouvez utiliser les fonctions Live data suivantes pour simuler les
fonctionnalités du menu.
showLiveDataDialog() utilisée pour l’élément du menu Affichage > Paramètres
Live Data
setLiveDataMode() utilisée pour les éléments du menu Affichage > Live Data et
Affichage > Actualiser Live Data
getLiveDataMode() également utilisée pour Affichage > Live Data
Les fonctions de données restantes sont utilisées pour implémenter la fonction du
traducteur API liveDataTranslateMarkup().
dreamweaver.getLiveDataInitTags()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie les balises d’initialisation pour le document actif. Il s’agit des balises
HTML fournies par l’utilisateur dans la boîte de dialogue Paramètres Live Data.
Cette fonction est généralement appelée par une fonction liveDataTranslateMarkup()
du traducteur, de telle sorte que le traducteur puisse transmettre les balises à la
fonction liveDataTranslate().
Arguments
Aucun.
Renvoie
Une chaîne contenant les balises d’initialisation.
dreamweaver.getLiveDataMode()
Disponibilité
Description
Détermine si la fenêtre Live Data est actuellement visible.
Arguments
Aucun.
Renvoie
114
Dreamweaver UltraDev 1.0
Chapitre 3
Une valeur booléenne indiquant si la fenêtre Live Data est visible ou pas.
000ExtendingDWU.book Page 115 Thursday, June 8, 2000 3:38 PM
dreamweaver.liveDataTranslate()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Envoie un document HTML entier vers un serveur de l’application, demande au
serveur d’exécuter les scripts dans le document, puis renvoie le document HTML
obtenu. Cette fonction ne peut être appelée que depuis une fonction
liveDataTranslateMarkup() du traducteur. Si vous essayez de l’appeler à un autre
moment, une erreur se produit. Elle exécute les opérations suivantes :
Active l’image animée apparaissant près du côté droit de la fenêtre Live Data.
Tient compte des informations saisies par l’utilisateur. Si celui-ci appuie sur
l’icône Arrêter, la fonction revient immédiatement.
Accepte un seul argument de chaîne de la part de l’appelant. Il s’agit en général
de la source HTML entière du document de l’utilisateur, la même chaîne
utilisée dans l’étape suivante.
Enregistre la chaîne HTML du document de l’utilisateur sous forme de fichier
temporaire sur le serveur Live Data.
Envoie une requête HTTP au serveur Live Data à l’aide des paramètres
spécifiés dans la boîte de dialogue Paramètres Live Data.
Reçoit la réponse HTML du serveur Live Data.
Enlève le fichier temporaire du serveur Live Data.
Suspend l’animation de l’image.
Renvoie la réponse HTML à l’appelant.
Arguments
Renvoie
Une simple chaîne, généralement l’intégralité de la source HTML du document
actuellement utilisé par l’utilisateur.
Un objet httpReply. Cet objet est identique à la valeur renvoyée par la fonction
MMHttp.getText(). Si l’utilisateur clique sur l’icône Arrêter, le httpReply.statusCode de
la valeur de retour sera égale à 200 (état : OK) et son httpReply.data sera égal à la
chaîne vide. Voir la section « API HTTP » à la page 219 pour plus d’informations
sur l’objet httpReply.
dreamweaver.setLiveDataError()
Disponibilité
Dreamweaver UltraDev 1.0
API JavaScript de Dreamweaver
115
000ExtendingDWU.book Page 116 Thursday, June 8, 2000 3:38 PM
Description
Spécifie le message d’erreur devant être affiché en cas d’erreur survenant au cours
de l’exécution de la fonction liveDataTranslateMarkup() dans un traducteur. Si le
document transmis par UltraDev à liveDataTranslate() contient des erreurs, le
serveur retransmet le message d’erreur, au format HTML. Si le traducteur (le code
ayant appelé liveDataTranslate()) réalise que le serveur a renvoyé un message d’erreur,
il appelle setLiveDataError() pour afficher le message d’erreur dans UltraDev. Ce
message s’affiche à l’issue de l’exécution de la fonction liveDataTranslateMarkup() ;
UltraDev affiche alors la description dans une boîte de dialogue d’erreur. La
fonction setLiveDataError() ne doit être appelée que depuis la fonction
liveDataTranslateMarkup().
Arguments
source
source est
une chaîne contenant un code source HTML et devant être analysée et
restituée dans la boîte de dialogue d’erreur.
Renvoie
Aucune.
dreamweaver.setLiveDataMode()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Affiche la fenêtre Live Data.
Arguments
bIsVisible
bIsVisible est une valeur booléenne indiquant si la fenêtre Live Data doit être visible
ou pas. Si vous transmettez true pour cette fonction et que la fenêtre Live Data est
en cours d’affichage, l’effet sera le même que lorsque l’utilisateur clique sur
Actualiser.
Renvoie
Aucune.
dreamweaver.showLiveDataDialog()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Affiche la boîte de dialogue Paramètres Live Data.
Arguments
Aucun.
Renvoie
Aucune.
Fonctions relatives aux menus
Ces fonctions permettent d’optimiser et de recharger les menus dans
Dreamweaver. Les fonctions dreamweaver.getMenuNeedsUpdating() et
dreamweaver.notifyMenuUpdated() sont spécialement conçues pour empêcher
l’exécution de routines de mise à jour superflues sur les menus dynamiques
intégrés à Dreamweaver.
116
Chapitre 3
000ExtendingDWU.book Page 117 Thursday, June 8, 2000 3:38 PM
dreamweaver.getMenuNeedsUpdating()
Disponibilité
3.0
Description
Vérifie si le menu spécifié doit être mis à jour.
Arguments
menuId
L’argument est une chaîne contenant la valeur de l’attribut id de l’élément de
menu (tel qu’il est spécifié dans le fichier menus.xml).
Renvoie
Activateur
Valeur booléenne indiquant si le menu doit être mis à jour. Cette fonction renvoie
la valeur FALSE uniquement si la fonction dreamweaver.notifyMenuUpdated() a été
appelée avec l’argument menuId et que la valeur renvoyée par menuListFunction n’a
pas changé depuis. Pour plus d’informations, voir
« dreamweaver.notifyMenuUpdated() » à la page 117 .
Aucun.
dreamweaver.notifyMenuUpdated()
Disponibilité
3.0
Description
Prévient Dreamweaver lorsque le menu spécifié doit être mis à jour.
Arguments
menuId, menuListFunction
Le premier argument est une chaîne contenant la valeur de l’attribut id de
l’élément de menu (tel qu’il est spécifié dans le fichier menus.xml).
Le second argument doit être l’une des chaînes suivantes :
"dw.cssStylePalette.getStyles()", "dw.getDocumentDOM().getFrameNames()",
"dw.getDocumentDOM().getEditableRegionList", "dw.getBrowserList()",
"dw.getRecentFileList()", "dw.getTranslatorList()", "dw.getFontList()",
"dw.getDocumentList()", "dw.htmlStylePalette.getStyles()" ou "site.getSites()".
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
117
000ExtendingDWU.book Page 118 Thursday, June 8, 2000 3:38 PM
dreamweaver.reloadMenus()
Disponibilité
3.0
Description
Recharge la structure de menus à partir du fichier menus.xml du dossier
Configuration.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
Fonctions relatives aux chemins
Ces fonctions permettent d’obtenir et de manipuler les chemins d’accès aux
fichiers et aux dossiers enregistrés sur le disque dur de l’utilisateur. Elles
permettent, entre autres, de déterminer le chemin d’accès à la racine du site dans
lequel réside le document en cours et de convertir des chemins relatifs en URL
absolues.
dreamweaver.getConfigurationPath()
Disponibilité
2.0
Description
Obtient le chemin d’accès du dossier Configuration, exprimé sous la forme d’une
URL de type file://.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Chaîne contenant le chemin d’accès du dossier Configuration.
Aucun.
Cette fonction est utile lorsque l’on souhaite faire référence à d’autres fichiers
d’extension stockés dans le dossier Configuration à l’intérieur du dossier de
l’application Dreamweaver. Exemple :
var sortCmd = dreamweaver.getConfigurationPath() + "/Commands/Sort Table.htm"
var sortDOM = dreamweaver.getDocumentDOM(sortCmd);
dreamweaver.getDocumentPath()
Disponibilité
118
1.2
Description
Obtient le chemin d’accès du document spécifié, exprimé sous la forme d’une
URL de type file://. Cette fonction revient à appeler la fonction
dreamweaver.getDocumentDOM() et à lire la propriété URL de la valeur renvoyée.
Arguments
sourceDoc
Chapitre 3
000ExtendingDWU.book Page 119 Thursday, June 8, 2000 3:38 PM
L’argument doit être "document", "parent", "parent.frames[number]" ou
"parent.frames[’frameName’]". document désigne le document actif contenant la
sélection en cours. parent désigne le jeu de cadres parent (si le document
sélectionné se trouve dans un cadre) et "parent.frames[number]" et
"parent.frames[’frameName’]" désignent un document figurant dans un cadre
spécifique du jeu de cadres contenant le document en cours.
Renvoie
L’une des valeurs suivantes :
Chaîne contenant l’URL du document spécifié, si le fichier a été enregistré ;
Chaîne vide si le fichier n’a pas été enregistré.
Activateur
Aucun.
dreamweaver.getSiteRoot()
Disponibilité
1.2
Description
Obtient le dossier racine local (défini dans la boîte de dialogue Définition du site)
du site associé au document sélectionné, exprimé sous la forme d’une URL de
type file://.
Arguments
Aucun.
Renvoie
L’une des valeurs suivantes :
Chaîne contenant l’URL du dossier racine local du site dans lequel le fichier a
été enregistré ;
Chaîne vide si le fichier n’est pas associé à un site.
Activateur
Aucun.
dreamweaver.relativeToAbsoluteURL()
Disponibilité
2.0
Description
Si on lui fournit une URL relative et un point de référence donnés (chemin du
document en cours ou racine du site), convertit l’URL relative en URL absolue
(file://).
Arguments
relURL, docPath, siteRoot
Le premier argument est l’URL à convertir.
Le second argument correspond au chemin du document sur le disque de
l’utilisateur (le document en cours, par exemple), exprimé sous la forme d’une
URL de type file://, ou à une chaîne vide si relURL est une URL relative à la
racine.
Le troisième argument correspond au chemin de la racine du site, exprimé sous
la forme d’une URL de type file://, ou à une chaîne vide si relURL est une URL
relative à un document.
API JavaScript de Dreamweaver
119
000ExtendingDWU.book Page 120 Thursday, June 8, 2000 3:38 PM
Renvoie
URL absolue. La valeur renvoyée est générée comme suit :
Si relURL est une URL absolue, aucune conversion n’a lieu et la valeur renvoyée
est identique à relURL.
Si relURL est une URL relative à un document, la valeur renvoyée est une
combinaison de docPath + relURL.
Si relURL est une URL relative à la racine, la valeur renvoyée est une
combinaison de siteRoot + relURL.
Activateur
Aucun.
Fonctions relatives à Quick Tag Editor
Ces fonctions permettent de se déplacer d’une balise à l’autre à l’intérieur et
autour de la sélection en cours. Elles permettent de supprimer n’importe laquelle
de ces balises, d’envelopper la sélection à l’intérieur d’une nouvelle balise et
d’afficher Quick Tag Editor pour permettre à l’utilisateur de modifier certains
attributs d’une balise.
dom.selectChild()
Disponibilité
3.0
Description
Sélectionne un enfant de la sélection en cours. Revient à sélectionner la balise
située immédiatement à droite dans le sélecteur de balises, en bas de la fenêtre de
document.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.selectParent()
Disponibilité
Description
Sélectionne le parent de la sélection en cours. Revient à sélectionner la balise située
immédiatement à gauche dans le sélecteur de balises, en bas de la fenêtre de
document.
Arguments
Aucun.
Renvoie
Activateur
120
3.0
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 121 Thursday, June 8, 2000 3:38 PM
dom.stripTag()
Disponibilité
3.0
Description
Supprime la balise entourant la sélection en cours, mais ne touche pas à son
contenu, le cas échéant. Si la sélection contient plusieurs balises ou aucune,
Dreamweaver affiche un message d’erreur.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.wrapTag()
Disponibilité
3.0
Description
Place la balise spécifiée autour de la sélection en cours. Si la balise n’est pas
complète, Dreamweaver affiche un message d’erreur.
Arguments
startTag
L’argument est le code source associé à la balise d’ouverture.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
Le code suivant enveloppe un lien autour de la sélection en cours.
var theDOM = dw.getDocumentDOM();
var theSel = theDOM.getSelectedNode;
if (theSel.nodeType = Node.TEXT_NODE){
theDOM.wrapTag(’<a href="foo.html">’);
}
dreamweaver.showQuickTagEditor()
Disponibilité
3.0
Description
Affiche Quick Tag Editor pour la sélection en cours.
Arguments
{nearWhat}, {mode}
Le premier argument doit être "selection" ou "tag selector". S’il n’est pas défini, il
prend par défaut la valeur "selection".
Le second argument doit être "default", "wrap", "insert" ou "edit". Si l’argument
a pour valeur "default" ou qu’il n’est pas défini, Dreamweaver utilise la
méthode heuristique porur déterminer le mode à utiliser pour la sélection en
cours. Si l’argument nearWhat a pour valeur "tag selector", l’argument mode est
ignoré.
mode
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
121
000ExtendingDWU.book Page 122 Thursday, June 8, 2000 3:38 PM
Fonctions relatives à la sélection
Ces fonctions permettent d’obtenir et de définir la sélection dans les documents
ouverts. Pour savoir comment obtenir et définir la sélection dans la fenêtre Site,
voir « Fonctions relatives aux sites » à la page 128.
dom.getSelectedNode()
Disponibilité
3.0
Description
Obtient le nœud sélectionné. Revient à appeler la fonction dom.getSelection() puis à
transmettre la valeur renvoyée à la fonction dom.offsetsToNode().
Arguments
Aucun.
Renvoie
Activateur
Objet tag, text ou comment contenant la série de caractères spécifiée.
Aucun.
dom.getSelection()
Disponibilité
3.0
Description
Obtient la sélection en cours, exprimée en décalages d’octets dans le code source
HTML du document.
Arguments
bAllowMultiple
L’argument est une valeur booléenne indiquant si la fonction doit renvoyer
plusieurs décalages lorsque plusieurs calques, cellules de tableaux ou zones
réactives de carte graphique sont sélectionnés. Si cet argument n’est pas défini, il
prend par défaut la valeur FALSE.
Renvoie
Pour les sélections simples, tableau contenant deux entiers. Le premier entier
correspond au décalage d’octets au début de la sélection. Le second correspond au
décalage d’octets à la fin de la sélection. Si les deux valeurs sont identiques, la
sélection en cours correspond à un point d’insertion.
Pour les sélections complexes (lorsque la sélection consiste en plusieurs cellules de
tableau, plusieurs calques ou plusieurs zones réactives), tableau contenant 2n
entiers, n représentant le nombre d’éléments sélectionnés. Le premier entier de
chaque paire correspond au décalage d’octets au début de la sélection (balise TD,
DIV, SPAN, LAYER, ILAYER ou MAP comprise) ; le second entier correspond au
décalage d’octets à la fin de la sélection (balise TD, DIV, SPAN, LAYER, ILAYER ou MAP
comprise). Si plusieurs lignes d’un tableau sont sélectionnées, le décalage de
chaque cellule de chaque ligne est renvoyé. La sélection n’inclut jamais les balises
TR.
Activateur
122
Chapitre 3
Aucun.
000ExtendingDWU.book Page 123 Thursday, June 8, 2000 3:38 PM
dom.nodeToOffsets()
Disponibilité
3.0
Description
Obtient la position d’un nœud de l’arborescence DOM, exprimée en décalages
d’octets dans le code source HTML du document. Valide pour n’importe quel
document sur un lecteur local.
Arguments
node
L’argument doit être une balise, un commentaire ou une plage de texte
correspondant à un nœud de l’arborescence renvoyée par la fonction
dreamweaver.getDocumentDOM().
Renvoie
Activateur
Exemple
Tableau contenant deux entiers. Le premier correspond au décalage d’octets au
début de la balise, du texte ou du commentaire, le second au décalage d’octets à la
fin du nœud.
Aucun.
L’exemple de code suivant sélectionne le premier objet image du document en
cours :
var theDOM = dreamweaver.getDocumentDOM("document");
var theImg = theDOM.images[0];
var offsets = dreamweaver.nodeToOffsets(theImg);
dreamweaver.setSelection(offsets[0], offsets[1]);
dom.offsetsToNode()
Disponibilité
3.0
Description
Obtient l’objet de l’arborescence DOM contenant intégralement la série de
caractères située entre un début et une fin définis. Valide pour n’importe quel
document sur un lecteur local.
Arguments
offsetBegin, offsetEnd
Les arguments correspondent respectivement au début et à la fin d’une série de
caractères, exprimés en décalages d’octets dans le code source HTML du
document.
Renvoie
Activateur
Exemple
Objet tag, text ou comment contenant la série de caractères spécifiée.
Aucun.
Le code suivant affiche une alerte si la sélection est une image.
var offsets = dreamweaver.getSelection();
var theSelection = dreamweaver.offsetsToNode(offsets[0], offsets[1]);
if (theSelection.nodeType == Node.ELEMENT_NODE && theSelection.tagName == ‘IMG’){
alert(’The current selection is an image.’);
}
API JavaScript de Dreamweaver
123
000ExtendingDWU.book Page 124 Thursday, June 8, 2000 3:38 PM
dom.selectAll()
Disponibilité
Description
3.0
Effectue une opération Sélectionner tout.
Remarque : dans la plupart des cas, cette fonction sélectionne le contenu entier du
document actif. Dans certains cas toutefois (lorsque le point d’insertion se trouve dans un
tableau, par exemple), elle ne sélectionne qu’une partie du document. Pour définir le
document entier comme sélection, utilisez la fonction dom.setSelection().
Arguments
Renvoie
Activateur
Aucun.
Aucune.
Aucun.
dom.selectTable()
Disponibilité
3.0
Description
Sélectionne un tableau entier.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canSelectTable()
dom.setSelectedNode()
Disponibilité
3.0
Description
Définit le nœud sélectionné. Revient à appeler la fonction dom.nodeToOffsets(),
puis à transmettre la valeur renvoyée à la fonction dom.setSelection().
Arguments
node, {bSelectInside}, {bJumpToNode}
Le premier argument est un nœud de texte, de commentaire ou d’élément du
document.
Le second argument est une valeur booléenne indiquant s’il faut sélectionner la
propriété innerHTML du nœud. Cet argument n’est pertinent que si node est un
nœud d’élément et qu’il prend par défaut la valeur FALSE lorsqu’il n’est pas
défini.
L’argument est une valeur booléenne indiquant s’il faut, le cas échéant, faire
défiler la fenêtre de document pour rendre la sélection visible. Si cet argument
n’est pas défini, il prend par défaut la valeur FALSE.
Renvoie
Activateur
124
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 125 Thursday, June 8, 2000 3:38 PM
dom.setSelection()
Disponibilité
3.0
Description
Définit le début et la fin de la sélection dans le document.
Arguments
offsetBegin, offsetEnd
Les arguments correspondent respectivement au début et à la fin de la nouvelle
sélection, exprimés en décalages d’octets dans le code source HTML du
document. Si les deux valeurs sont identiques, la nouvelle sélection correspond à
un point d’insertion. Si la nouvelle sélection n’est pas une sélection HTML valide,
elle inclut les caractères de la première sélection HTML valide. Par exemple, si
offsetBegin et offsetEnd définissent SRC="myImage.gif" comme sélection dans <IMG
SRC="myImage.gif">, la sélection est étendue pour inclure également la balise IMG.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.selectAll()
Disponibilité
Description
3.0
Effectue une opération Sélectionner tout dans la fenêtre de document active, dans
la fenêtre Site, ou, sur Macintosh, dans le champ modifiable actif d’une boîte de
dialogue ou d’une palette flottante.
Remarque : si l’opération est effectuée dans le document actif, elle sélectionne dans la
plupart des cas le contenu entier du document actif. Dans certains cas toutefois (lorsque le
point d’insertion se trouve dans un tableau, par exemple), elle ne sélectionne qu’une partie
du document. Pour définir le document entier comme sélection, utilisez la fonction
dom.setSelection().
Arguments
Renvoie
Activateur
Aucun.
Aucune.
dreamweaver.canSelectAll()
Fonctions de comportement de serveur
Les fonctions de comportement de serveur vous permettent de manipuler
l’inspecteur de comportements de serveur que les utilisateurs peuvent afficher en
sélectionnant Fenêtre > Comportements de serveur. A l’aide de ces fonctions, vous
pouvez trouver l’ensemble des comportements d’un serveur sur une page et, par le
biais de la programmation, appliquer un nouveau comportement au document ou
modifier un document existant.
Remarque : vous pouvez abréger l’expression dw.serverBehaviorInspector en dw.sbi.
API JavaScript de Dreamweaver
125
000ExtendingDWU.book Page 126 Thursday, June 8, 2000 3:38 PM
dreamweaver.serverBehaviorInspector.findAllServerBehaviors()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Pose un indicateur destiné à rappeler à l’utilisateur d’appeler la fonction
findServerBehaviors() API de comportement de serveur pour chaque comportement
installé.
Arguments
Aucun.
Renvoie
Aucune.
dreamweaver.serverBehaviorInspector.getServerBehaviors()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Dresse une liste de tous les comportements de la page. Lorsqu’UltraDev réalise
que la liste interne des comportements de serveur peut ne pas être à jour, il appelle
findServerBehaviors() pour chaque comportement installé. Chacune de ces fonctions
renvoie alors une table. UltraDev fusionne toutes les tables en une seule et trie ses
éléments par ordre des objets selectedNode de comportement apparaissant dans le
document. UltraDev stocke la table fusionnée. La fonction getServerBehaviors()
renvoie alors un pointeur à ladite table fusionnée.
Arguments
Aucun.
Renvoie
Une table d’objets JavaScript. Les objets de la table sont identiques à ceux
renvoyés par l’appel findServerBehaviors(). Les objets sont triés dans l’ordre dans
lequel ils apparaissent dans l’inspecteur de comportements de serveur.
dreamweaver.popupServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Applique un nouveau comportement de serveur au document ou modifie un
comportement existant. Si l’utilisateur doit spécifier les paramètres pour le
comportement, une boîte de dialogue s’affiche.
Arguments
{behaviorName or behaviorObject}
behaviorName est une chaîne représentant le nom du comportement, la balise de
titre d’un fichier ou un nom de fichier.
behaviorObject est un objet de comportement.
Si vous omettez l’argument, UltraDev exécute le comportement de serveur
actuellement sélectionné. Si l’argument fait partie des objets de la table renvoyés
par getServerBehaviors(), une boîte de dialogue s’affiche alors, laissant à l’utilisateur
la possibilité de modifier les paramètres pour le comportement.
Renvoie
126
Chapitre 3
Aucun.
000ExtendingDWU.book Page 127 Thursday, June 8, 2000 3:38 PM
Fonctions modèle de serveur
Dans UltraDev, chaque site possède un modèle de serveur, tel que ASP, JSP ou
ColdFusion. Les modèles de serveur sont les technologies utilisées pour exécuter
des scripts sur un serveur. En spécifiant un modèle de serveur, l’utilisateur indique
à UltraDev le type de balise à insérer dans les pages d’une application. Par
exemple, s’il spécifie le modèle ColdFusion, UltraDev insérera les balises et scripts
ColdFusion nécessaires dans la page.
A l’aide des fonctions modèle de serveur, vous pouvez déterminer le modèle de
serveur utilisé pour un site, ainsi que les langages et la version de modèle de
serveur pris en charge.
dom.serverModel.getServerLanguage()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Détermine le site qui contient le document, puis renvoie le langage de serveur
pour ce site. Le langage de serveur pour un site correspond à la valeur définie en
tant que Langage de script par défaut dans l’onglet Infos du serveur d’application
de la boîte de dialogue Définition du site.
La valeur de retour de cette fonction est celle des valeurs renvoyées par la fonction
API de modèle de serveur getServerLanguages(). Pour ASP, la valeur de retour de
cette fonction est soit JavaScript soit VBScript, selon la valeur choisie par
l’utilisateur.
Arguments
Aucun.
Renvoie
Une chaîne contenant les langages de script pris en charge.
Exemple
Si le modèle de serveur actuel est ASP 2.0, un appel à
dom.serverModel.getServerLanguage() renvoie [“VBScript”, “JavaScript”].
dom.serverModel.getServerName()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Détermine le site contenant le document puis renvoie le modèle de serveur pour
ce site. Les valeurs possibles incluent ASP, JSP, Cold Fusion ainsi que tout autre
fichier supplémentaire contenu dans le dossier Configuration\ServerModels.
Arguments
Aucun.
Renvoie
Une chaîne contenant le nom du serveur.
API JavaScript de Dreamweaver
127
000ExtendingDWU.book Page 128 Thursday, June 8, 2000 3:38 PM
dom.serverModel.getServerVersion()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Détermine le site contenant le document, puis le modèle de serveur choisi pour ce
site. Chaque modèle de serveur possède une fonction getVersionArray() dans le
modèle de serveur API qui renvoie une table de paires nom-version.
Arguments
name
name est
Renvoie
une chaîne représentant le nom d’une version.
Une chaîne contenant la version. Par exemple, si vous transmettez « ADODB » à
dom.serverModel.getServerVersion(), UltraDev renvoie « 2.1 ».
Fonctions relatives aux sites
Ces fonctions permettent d’effectuer des opérations sur les fichiers de site ou sur la
carte du site. Elles permettent de créer des liens entre les fichiers, d’obtenir, de
placer, d’extraire et d’archiver des fichiers, de les sélectionner et de les
désélectionner, de les créer et de les supprimer, d’obtenir des informations sur les
sites définis par l’utilisateur, etc.
site.addLinkToExistingFile()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Sélectionner fichier HTML pour permettre à
l’utilisateur de sélectionner un fichier, puis crée un lien entre ce dernier et le
document sélectionné.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canAddLink()
site.addLinkToNewFile()
Disponibilité
Description
Ouvre la boîte de dialogue Lier au nouveau fichier pour permettre à l’utilisateur de
créer un fichier, puis crée un lien entre ce dernier et le document sélectionné.
Arguments
Aucun.
Renvoie
Activateur
128
3.0
Chapitre 3
Aucune.
site.canAddLink()
000ExtendingDWU.book Page 129 Thursday, June 8, 2000 3:38 PM
site.changeLinkSitewide()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Modifier le lien au niveau du site.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
site.changeLink()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Sélectionner fichier HTML pour permettre à
l’utilisateur de sélectionner le nouveau fichier à associer au lien.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canChangeLink()
site.checkIn()
Disponibilité
Description
3.0
Archive les fichiers sélectionnés et traite les fichiers dépendants de l’une des
façons suivantes :
Si l’utilisateur a activé l’option Invite lors de Placer/Archiver dans les
préférences, catégorie FTP du site, la boîte de dialogue Fichiers dépendants
s’affiche.
Si l’utilisateur a activé l’option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu’il a cliqué sur Oui, les fichiers
dépendants sont téléchargés et aucune boîte de dialogue ne s’affiche.
Si l’utilisateur a activé l’option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu’il a cliqué sur Non, les fichiers
dépendants ne sont pas téléchargés et aucune boîte de dialogue ne s’affiche.
Arguments
siteOrURL
L’argument doit être soit le mot-clé "site", indiquant que la fonction doit agir sur
l’élément sélectionné dans la fenêtre Site, soit l’URL d’un fichier.
Renvoie
Activateur
Aucune.
site.canCheckIn()
API JavaScript de Dreamweaver
129
000ExtendingDWU.book Page 130 Thursday, June 8, 2000 3:38 PM
site.checkLinks()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Vérificateur de lien et vérifie les liens dans les fichiers
spécifiés.
Arguments
scopeOfCheck
L’argument indique à quel endroit les liens doivent être vérifiés. Il doit avoir pour
valeur "document", "selection" ou "site".
Renvoie
Activateur
Aucune.
Aucun.
site.checkOut()
Disponibilité
Description
3.0
Extrait les fichiers sélectionnés et traite les fichiers dépendants de l’une des
façons suivantes :
Si l’utilisateur a activé l’option Invite lors de Acquérir/Extraire dans les
préférences, catégorie FTP du site, la boîte de dialogue Fichiers dépendants
s’affiche.
Si l’utilisateur a activé l’option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu’il a cliqué sur Oui, les fichiers
dépendants sont téléchargés et aucune boîte de dialogue ne s’affiche.
Si l’utilisateur a activé l’option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu’il a cliqué sur Non, les fichiers
dépendants ne sont pas téléchargés et aucune boîte de dialogue ne s’affiche.
Arguments
siteOrURL
L’argument doit être soit le mot-clé "site", indiquant que la fonction doit agir sur
l’élément sélectionné dans la fenêtre Site, soit l’URL d’un fichier.
Renvoie
Activateur
Aucune.
site.canCheckOut()
site.checkTargetBrowsers()
Disponibilité
Description
Vérifie le navigateur cible des documents sélectionnés.
Arguments
Aucun.
Renvoie
Activateur
130
3.0
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 131 Thursday, June 8, 2000 3:38 PM
site.defineSites()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Définir les sites.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
site.deleteSelection()
Disponibilité
3.0
Description
Supprime les fichiers sélectionnés.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
site.locateInSite()
Disponibilité
3.0
Description
Recherche le ou les fichiers spécifiés dans le volet spécifié de la fenêtre Site et
sélectionne les fichiers identifiés par la recherche.
Arguments
localOrRemote, siteOrURL
Le premier argument doit être "local" ou "remote".
Le second argument doit être soit le mot-clé "site", indiquant que la fonction
doit agir sur l’élément sélectionné dans la fenêtre Site, soit l’URL d’un fichier.
Renvoie
Activateur
Aucune.
site.canLocateInSite()
site.findLinkSource()
Disponibilité
3.0
Description
Ouvre le fichier contenant le lien ou le fichier dépendant sélectionné et met en
surbrillance, dans ce fichier, le texte du lien ou la référence au fichier dépendant.
Cette fonction agit seulement sur les fichiers de l’affichage Carte du site.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canFindLinkSource()
API JavaScript de Dreamweaver
131
000ExtendingDWU.book Page 132 Thursday, June 8, 2000 3:38 PM
site.get()
Disponibilité
Description
3.0
Obtient les fichiers spécifiés et traite les fichiers dépendants comme suit :
Si l’utilisateur a activé l’option Invite lors de Acquérir/Extraire dans les
préférences, catégorie FTP du site, la boîte de dialogue Fichiers dépendants
s’affiche.
Si l’utilisateur a activé l’option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu’il a cliqué sur Oui, les fichiers
dépendants sont téléchargés et aucune boîte de dialogue ne s’affiche.
Si l’utilisateur a activé l’option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu’il a cliqué sur Non, les fichiers
dépendants ne sont pas téléchargés et aucune boîte de dialogue ne s’affiche.
Arguments
siteOrURL
L’argument doit être soit le mot-clé "site", indiquant que la fonction doit agir sur
l’élément sélectionné dans la fenêtre Site, soit l’URL d’un fichier.
Renvoie
Activateur
Aucune.
site.canGet()
site.getCheckOutUser()
Disponibilité
3.0
Description
Obtient le nom d’utilisateur et le nom d’extraction associés au site en cours.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Chaîne contenant un nom d’utilisateur et un nom d’extraction, le cas échéant, ou
chaîne vide si la fonction d’archivage/extraction est désactivée.
Aucun.
Un appel à la fonction site.getCheckOutUser() pourrait renvoyer ceci : "lori
(loriLaptop)". Si aucun nom d’extraction n’est spécifié, seul le nom d’utilisateur
renvoyé ("lori", par exemple).
est
site.getCheckOutUserForFile()
Disponibilité
3.0
Description
Obtient le nom d’utilisateur et le nom d’extraction de l’utilisateur qui a extrait le
fichier spécifié.
Arguments
fileName
L’argument est le chemin du fichier spécifié, exprimé sous la forme d’une URL de
type file://.
132
Chapitre 3
000ExtendingDWU.book Page 133 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Exemple
Chaîne contenant le nom d’utilisateur et le nom d’extraction de l’utilisateur qui a
extrait le fichier spécifié, ou chaîne vide si le fichier n’a pas été extrait.
Aucun.
Un appel à la fonction site.getCheckOutUserForFile("file://C:/sites/avocado8/index.html")
pourrait renvoyer ceci : "lori (loriLaptop)". Si aucun nom d’extraction n’est spécifié,
seul le nom d’utilisateur est renvoyé ("lori", par exemple).
site.getConnectionState()
Disponibilité
3.0
Description
Obtient l’état de connexion en cours.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si le site distant est connecté.
site.canConnect()
site.getCurrentSite()
Disponibilité
3.0
Description
Obtient le site en cours.
Arguments
Aucun.
Renvoie
Activateur
Exemple
Chaîne contenant le nom du site en cours.
Aucun.
Si plusieurs sites sont définis, un appel à la fonction site.getCurrentSite() renvoie
celui qui est actuellement affiché dans la liste des sites en cours de la fenêtre Site.
site.getFocus()
Disponibilité
3.0
Description
Détermine quel est le volet actif de la fenêtre Site.
Arguments
Aucun.
Renvoie
Activateur
L’une des chaînes suivantes : "local", "remote" ou "site map".
Aucun.
API JavaScript de Dreamweaver
133
000ExtendingDWU.book Page 134 Thursday, June 8, 2000 3:38 PM
site.getLinkVisibility()
Disponibilité
3.0
Description
Vérifie si tous les liens sélectionnés dans la carte du site sont visibles (c’est-à-dire
s’ils ne sont pas marqués comme cachés).
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si tous les liens sélectionnés sont visibles.
Aucun.
site.getSelection()
Disponibilité
3.0
Description
Détermine quels sont les fichiers actuellement sélectionnés dans la fenêtre Site.
Arguments
Aucun.
Renvoie
Activateur
Tableau de chaînes représentant les chemins des fichiers et des dossiers
sélectionnés, exprimés sous la forme d’URL de type file://, ou tableau vide si
aucun fichier ni dossier n’est sélectionné.
Aucun.
site.getSites()
Disponibilité
3.0
Description
Obtient la liste des sites définis.
Arguments
Aucun.
Renvoie
Activateur
Tableau de chaînes représentant les noms des sites définis, ou tableau vide si aucun
site n’est défini.
Aucun.
site.invertSelection()
Disponibilité
Description
Inverse la sélection dans la carte du site.
Arguments
Aucun.
Renvoie
Activateur
134
3.0
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 135 Thursday, June 8, 2000 3:38 PM
site.makeEditable()
Disponibilité
3.0
Description
Désactive le drapeau de lecture seule sur les fichiers sélectionnés.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canMakeEditable()
site.makeNewDreamweaverFile()
Disponibilité
3.0
Description
Crée un nouveau fichier Dreamweaver dans la fenêtre Site (dans le même
répertoire que le premier fichier ou dossier sélectionné).
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canMakeNewFileOrFolder()
site.makeNewFolder()
Disponibilité
3.0
Description
Crée un nouveau dossier Dreamweaver dans la fenêtre Site (dans le même
répertoire que le premier fichier ou dossier sélectionné).
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canMakeNewFileOrFolder()
site.newHomePage()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Nouvelle page d’accueil pour permettre à l’utilisateur
de créer une nouvelle page d’accueil.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
135
000ExtendingDWU.book Page 136 Thursday, June 8, 2000 3:38 PM
site.newSite()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Définition du site pour définir un nouveau site.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
site.open()
Disponibilité
3.0
Description
Ouvre les fichiers actuellement sélectionnés dans la fenêtre Site. Si des dossiers
sont sélectionnés, ils sont développés dans l’affichage Fichiers du site.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canOpen()
site.put()
Disponibilité
Description
3.0
Place les fichiers spécifiés et traite les fichiers dépendants comme suit :
Si l’utilisateur a activé l’option Invite lors de Placer/Archiver dans les
préférences, catégorie FTP du site, la boîte de dialogue Fichiers dépendants
s’affiche.
Si l’utilisateur a activé l’option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu’il a cliqué sur Oui, les fichiers
dépendants sont téléchargés et aucune boîte de dialogue ne s’affiche.
Si l’utilisateur a activé l’option Ne plus afficher ce message dans la boîte de
dialogue Fichiers dépendants, puis qu’il a cliqué sur Non, les fichiers
dépendants ne sont pas téléchargés et aucune boîte de dialogue ne s’affiche.
Arguments
siteOrURL
L’argument doit être soit le mot-clé "site", indiquant que la fonction doit agir sur
l’élément sélectionné dans la fenêtre Site, soit l’URL d’un fichier.
Renvoie
Activateur
Aucune.
site.canPut()
site.recreateCache()
Disponibilité
136
Chapitre 3
3.0
000ExtendingDWU.book Page 137 Thursday, June 8, 2000 3:38 PM
Description
Recrée le cache du site en cours.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canRecreateCache()
site.refresh()
Disponibilité
3.0
Description
Actualise la liste des fichiers sur le côté spécifié de la fenêtre Site.
Arguments
whichSide
L’argument doit être "local" ou "remote". Si la carte du site est active et que whichSide
a pour valeur "local", la carte du site est actualisée.
Renvoie
Activateur
Aucune.
site.canRefresh()
site.remoteIsValid()
Disponibilité
3.0
Description
Détermine si le site distant est valide.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si un site distant a été défini et, dans le cas où le type
de serveur est Local/Réseau, si le lecteur est monté.
Aucun.
site.removeLink()
Disponibilité
3.0
Description
Supprime le lien sélectionné du document situé au-dessus de lui dans la carte du
site.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canRemoveLink()
site.renameSelection()
Disponibilité
3.0
API JavaScript de Dreamweaver
137
000ExtendingDWU.book Page 138 Thursday, June 8, 2000 3:38 PM
Description
Transforme le nom du fichier sélectionné en champ modifiable et permet à
l’utilisateur de renommer le fichier. Si plusieurs fichiers sont sélectionnés, cette
fonction agit sur le dernier.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
site.saveAsImage()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Enregistrer sous pour permettre à l’utilisateur
d’enregistrer la carte du site sous forme d’image.
Arguments
fileType
L’argument est le type d’image à enregistrer. Pour Windows, les valeurs autorisées
sont "bmp" et "png", et pour Macintosh "pict" et "jpeg". Si cet argument n’est pas
défini ou que sa valeur n’est pas valide sur la plate-forme en cours, il prend par
défaut la valeur "bmp" pour Windows et "pict" pour Macintosh.
Renvoie
Activateur
Aucune.
Aucun.
site.selectAll()
Disponibilité
3.0
Description
Sélectionne tous les fichiers de l’affichage actif (à savoir soit la carte du site, soit les
fichiers de site)
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
site.selectHomePage()
Disponibilité
Description
Ouvre la boîte de dialogue d’ouverture de fichier pour permettre à l’utilisateur de
choisir une nouvelle page d’accueil.
Arguments
Aucun.
Renvoie
Activateur
138
3.0
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 139 Thursday, June 8, 2000 3:38 PM
site.selectNewer()
Disponibilité
3.0
Description
Sélectionne tous les fichiers les plus récents sur le côté spécifié de la fenêtre Site.
Arguments
whichSide
L’argument doit être "local" ou "remote".
Renvoie
Activateur
Aucune.
site.canSelectNewer()
site.setAsHomePage()
Disponibilité
3.0
Description
Désigne le fichier sélectionné dans l’affichage Fichiers du site comme étant la page
d’accueil du site.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
site.setConnectionState()
Disponibilité
3.0
Description
Définit l’état de connexion du site en cours.
Arguments
bConnected
Renvoie
Activateur
Aucune.
Aucun.
site.setCurrentSite()
Disponibilité
3.0
Description
Ouvre le site spécifié dans le volet local de la fenêtre Site.
Arguments
whichSite
L’argument est le nom d’un site défini (tel qu’il apparaît dans la liste des sites en
cours, dans la fenêtre Site ou dans la boîte de dialogue Définir les sites.
Renvoie
Activateur
Exemple
Aucune.
Aucun.
Si trois sites sont définis (avocado8, dreamcentral et testsite, par exemple), un
appel à la fonction site.setCurrentSite("dreamcentral") fait de dreamcentral le site en
cours.
API JavaScript de Dreamweaver
139
000ExtendingDWU.book Page 140 Thursday, June 8, 2000 3:38 PM
site.setFocus()
Disponibilité
3.0
Description
Active le volet spécifié de la fenêtre Site. Si le volet spécifié n’est pas affiché, la
fonction l’affiche et l’active.
Arguments
whichPane
L’argument doit être l’une des chaînes suivantes : "local", "remote" ou "site map".
Renvoie
Activateur
Aucune.
Aucun.
site.setLayout()
Disponibilité
3.0
Description
Ouvre le volet Mise en forme de la carte du site de la boîte de dialogue Définition
du site.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canSetLayout()
site.setLinkVisibility()
Disponibilité
3.0
Description
Affiche ou masque le lien en cours.
Arguments
bShow
L’argument est une valeur booléenne indiquant si le lien en cours ne doit plus être
marqué comme étant masqué.
Renvoie
Activateur
Aucune.
Aucun.
site.setSelection()
Disponibilité
3.0
Description
Sélectionne les fichiers ou les dossiers visibles dans le volet actif de la fenêtre Site.
Arguments
arrayOfURLs
L’argument est un tableau de chaînes, chacune représentant le chemin d’accès à un
fichier ou à un dossier du site en cours, exprimé sous la forme d’une URL de type
file://.
Remarque : pour les chemins de dossier, ne tapez pas la barre oblique (/) à la fin du
chemin.
140
Chapitre 3
000ExtendingDWU.book Page 141 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Aucune.
Aucun.
site.synchronize()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Synchroniser les fichiers.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canSynchronize()
site.undoCheckOut()
Disponibilité
3.0
Description
Retire des sites locaux et distants les fichiers verrouillés associés aux fichiers
sélectionnés et remplace leur copie locale par la copie distante.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canUndoCheckOut()
site.viewAsRoot()
Disponibilité
3.0
Description
Place provisoirement le fichier sélectionné en première position sur la carte du site.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
site.canViewAsRoot()
Fonctions de manipulation de chaînes
Ces fonctions vous permettent d’obtenir des informations sur une chaîne et de
convertir une chaîne Latin1 en code national sur la plate-forme de l’utilisateur et
vice versa.
dreamweaver.getTokens()
Disponibilité
Description
1.0
Accepte une chaîne et la divise en expressions.
API JavaScript de Dreamweaver
141
000ExtendingDWU.book Page 142 Thursday, June 8, 2000 3:38 PM
Arguments
searchString, separatorCharacters
Le premier argument correspond à la chaîne à diviser.
Le second argument représente le ou les caractères indiquant la fin d’une
expression. Les séparateurs figurant dans des chaînes entre guillemets sont
ignorés. Si separatorCharacters contient un espace, tous les espaces (les
tabulations, par exemple) sont traités comme des séparateurs, comme si vous les
aviez définis explicitement. Deux espaces consécutifs ou plus sont traités
comme un seul séparateur.
Renvoie
Activateur
Exemple
Tableau d’expressions.
Aucun.
dreamweaver.getTokens(’foo("my arg1", 34)’, ‘(),’)
renvoie les expressions suivantes :
foo
"my arg 1"
34
dreamweaver.latin1ToNative()
Disponibilité
Description
2.0
Convertit une chaîne Latin1 en code national sur la machine de l’utilisateur. Cette
fonction permet d’afficher l’interface utilisateur d’un fichier d’extension dans une
autre langue.
Remarque : sous Windows, cette fonction n’a aucun effet car le code Windows repose sur
Latin1.
Arguments
stringToConvert
L’argument correspond à la chaîne (déjà convertie) à convertir du code Latin1 en
code national.
Renvoie
Activateur
Chaîne convertie.
Aucun.
dreamweaver.nativeToLatin1()
Disponibilité
Description
2.0
Convertit une chaîne de code national en code Latin1.
Remarque : sous Windows, cette fonction n’a aucun effet car le code Windows repose sur
Latin1.
Arguments
stringToConvert
L’argument correspond à la chaîne de code national à convertir en code Latin1.
142
Chapitre 3
000ExtendingDWU.book Page 143 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Chaîne convertie.
Aucun.
La fonction dreamweaver.scanSourceString() est une fonction utilitaire qui analyse
une chaîne et détermine l’emplacement des balises HTML, des attributs et des
instructions. Voici un scénario décrivant l’utilisation de cette fonction :
1
Créez une implémentation pour une ou plusieurs des sept fonctions de rappel.
2
Ecrivez un script appelant la fonction dreamweaver.scanSourceString().
3
La fonction dreamweaver.scanSourceString() est alors transmise à une chaîne
contenant les données HTML et les pointeurs vers les fonctions de rappel que
vous avez rédigées. Par exemple, la chaîne d’HTML peut être du type "<font
size=2>hello</font>".
4
Dreamweaver analyse alors la chaîne, détecte une balise de police et appelle les
fonctions de rappel dans l’ordre suivant :
fonction openTagBegin()
fonction attribute() (pour l’attribut de taille)
fonction openTagEnd()
fonction text() (pour la chaîne "hello")
fonctions closeTagBegin() et closeTagEnd()
Fonctions de rappel dreamweaver.scanSourceString
Comme mentionné ci-dessus, Dreamweaver peut appeler les sept fonctions de
rappel suivantes :
1
Dreamweaver appelle openTagBegin() pour chaque balise d’ouverture (par
exemple, <font> au lieu de </font>) et chaque balise vide (par exemple, <img>
ou <hr>). La fonction openTagBegin() accepte deux arguments : le nom de la
balise (par exemple, “font” ou “img”) et l’offset du document, soit le nombre
d’octets du document avant la balise d’ouverture. La fonction renvoie true si la
recherche doit continuer ou false si celle-ci doit s’arrêter.
2
Après l’exécution d’openTagBegin(), Dreamweaver appelle attribute() pour chaque
attribut HTML. La fonction attribute() accepte deux arguments : une chaîne
contenant le nom de l’attribut (par exemple, “color” ou “src”) et une chaîne
contenant la valeur de l’attribut (par exemple, “#000000” ou “foo.gif”). La
fonction attribute() renvoie une valeur booléenne indiquant si l’analyse doit
continuer ou pas.
API JavaScript de Dreamweaver
143
000ExtendingDWU.book Page 144 Thursday, June 8, 2000 3:38 PM
3
Après avoir analysé l’ensemble des attributs de la balise, Dreamweaver appelle
openTagEnd(). La fonction openTagEnd() accepte un argument : l’offset du
document, à savoir le nombre d’octets du document avant la balise d’ouverture.
Elle renvoie alors une valeur booléenne indiquant si l’analyse doit continuer ou
pas.
4
Dreamweaver appelle closeTagBegin() pour chaque balise de fermeture, telle que
</font>. La fonction accepte deux arguments : le nom de la balise devant être
fermée (par exemple “font”) et l’offset du document, soit le nombre d’octets du
document avant le début de la balise de fermeture. La fonction renvoie alors
une valeur booléenne indiquant si la recherche doit continuer ou pas.
5
Une fois la fonction closeTagBegin()renvoyée, Dreamweaver appelle la fonction
TagEnd(). Cette fonction accepte un argument : l’offset du document, soit le
nombre d’octets dans le document avant la fin de la balise de fermeture. Elle
renvoie alors une valeur booléenne indiquant si la recherche doit continuer ou
pas.
6
Dreamweaver appelle la fonction directive() pour chaque commentaire HTML,
script ASP, JSP ou PHP. La fonction directive() accepte deux arguments : une
chaîne contenant l’instruction et l’offset du document, à savoir le nombre
d’octets dans le document avant la fin de la balise de fermeture. La fonction
renvoie alors une valeur booléenne indiquant si l’analyse doit continuer ou pas.
7
Dreamweaver appelle la fonction text() pour chaque partie du texte contenue
dans le document, à l’exception des balises et instructions. Ce texte comporte
des parties qui demeurent cachées à l’utilisateur, telles que le texte apparaissant
à l’intérieur des balises <title> ou <option>. La fonction text() accepte deux
arguments : une chaîne contenant le texte et l’offset du document, à savoir le
nombre d’octets dans le document avant la fin de la balise de fermeture. La
fonction text() renvoie une valeur booléenne indiquant si l’analyse doit
continuer ou pas.
dreamweaver.scanSourceString()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Analyse une chaîne HTML et détermine les balises, attributs, instructions et le
texte qu’elle contient. Pour chaque balise, attribut, instruction et texte trouvés,
scanSourceString() ouvre une fonction de rappel fournie par l’appelant.
Dreamweaver prend en charge les fonctions de rappel suivantes : openTagBegin(),
openTagEnd(), closeTagBegin(), closeTagEnd(), directive(), attribute() et text().
Arguments
HTMLstr, parserCallbackObj
HTMLstr est une chaîne contenant le code HTML.
144
Chapitre 3
000ExtendingDWU.book Page 145 Thursday, June 8, 2000 3:38 PM
parserCallbackObj est un objet JavaScript possédant au moins l’une des méthodes
suivantes : openTagBegin(), openTagEnd(), closeTagBegin(), closeTagEnd(), directive(),
attribute() et text(). Pour de meilleurs résultats, parserCallbackObj doit être une
bibliothèque partagée définie à l’aide de l’interface Extensions C et elle ne doit
définir que les fonctions de rappel qui lui sont indispensables.
Renvoie
Une valeur booléenne indiquant si l’opération a été exécutée avec succès.
Fonctions de modification des tableaux
Ces fonctions permettent d’insérer et de supprimer des lignes et des colonnes dans
des tableaux, de modifier la largeur des colonnes et la hauteur des lignes, de
convertir en pourcentage des mesures exprimées en pixels (et vice versa) et
d’effectuer d’autres opérations standard de modification des tableaux.
dom.convertWidthsToPercent()
Disponibilité
3.0
Description
Convertit en pourcentage tous les attributs WIDTH exprimés en pixels du tableau
en cours.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.convertWidthsToPixels()
Description
Convertit en pixels tous les attributs WIDTH exprimés en pourcentage du tableau
en cours.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.decreaseColspan()
Disponibilité
3.0
Description
Diminue l’étendue de colonnes de 1.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canDecreaseColspan()
API JavaScript de Dreamweaver
145
000ExtendingDWU.book Page 146 Thursday, June 8, 2000 3:38 PM
dom.decreaseRowspan()
Disponibilité
3.0
Description
Diminue l’étendue de lignes de 1.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canDecreaseRowspan()
dom.deleteTableColumn()
Disponibilité
3.0
Description
Supprime du tableau la ou les colonnes sélectionnées.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canDeleteTableColumn()
dom.deleteTableRow()
Disponibilité
3.0
Description
Supprime du tableau la ou les lignes sélectionnées.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canDeleteTableRow()
dom.doDeferredTableUpdate()
Disponibilité
3.0
Description
Si l’option Modification de tableau plus rapide est activée dans les préférences,
catégorie Général, force l’application des modifications apportées à la mise en
forme du tableau sans déplacer le point d’insertion à l’extérieur de celui-ci. Cette
fonction n’a aucun effet si l’option Modification de tableau plus rapide n’est pas
activée.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.getTableExtent()
Disponibilité
146
Chapitre 3
3.0
000ExtendingDWU.book Page 147 Thursday, June 8, 2000 3:38 PM
Description
Obtient le nombre de colonnes et de lignes du tableau sélectionné.
Arguments
Aucun.
Renvoie
Activateur
Tableau contenant deux nombres entiers. Le premier entier correspond au nombre
de colonnes, et le second au nombre de lignes. Si aucun tableau n’était sélectionné,
aucune valeur n’est renvoyée.
Aucun.
dom.increaseColspan()
Disponibilité
3.0
Description
Augmente l’étendue de colonnes de 1.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canIncreaseColspan()
dom.increaseRowspan()
Disponibilité
3.0
Description
Augmente l’étendue de lignes de 1.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canIncreaseRowspan()
dom.insertTableColumns()
Disponibilité
3.0
Description
Insère le nombre de colonnes spécifié dans le tableau en cours.
Arguments
numberOfCols, bBeforeSelection
Le premier argument est le nombre de colonnes à insérer.
Le second argument est une valeur booléenne indiquant si les colonnes doivent
être insérées avant la colonne contenant la sélection.
Renvoie
Activateur
Aucune.
dom.canInsertTableColumns()
dom.insertTableRows()
Disponibilité
Description
3.0
Insère le nombre de lignes spécifié dans le tableau en cours.
API JavaScript de Dreamweaver
147
000ExtendingDWU.book Page 148 Thursday, June 8, 2000 3:38 PM
Arguments
numberOfRows, bBeforeSelection
Le premier argument est le nombre de lignes à insérer.
Le second argument est une valeur booléenne indiquant si les lignes doivent
être insérées avant la ligne contenant la sélection.
Renvoie
Activateur
Aucune.
dom.canInsertTableRows()
dom.mergeTableCells()
Disponibilité
3.0
Description
Fusionne les cellules de tableau sélectionnées.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canMergeTableCells()
dom.removeAllTableHeights()
Disponibilité
3.0
Description
Supprime tous les attributs HEIGHT du tableau sélectionné.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.removeAllTableWidths()
Disponibilité
3.0
Description
Supprime tous les attributs WIDTH du tableau sélectionné.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.setTableCellTag()
Disponibilité
3.0
Description
Définit la balise de la cellule sélectionnée.
Arguments
tdOrTh
L’argument doit être "td" ou "th".
148
Chapitre 3
000ExtendingDWU.book Page 149 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Aucune.
Aucun.
dom.setTableColumns()
Disponibilité
3.0
Description
Définit le nombre de colonnes du tableau sélectionné.
Arguments
numberOfCols
Renvoie
Activateur
Aucune.
Aucun.
dom.setTableRows()
Disponibilité
3.0
Description
Définit le nombre de lignes du tableau sélectionné.
Arguments
numberOfRows
Renvoie
Activateur
Aucune.
Aucun.
dom.showInsertTableRowsOrColumnsDialog()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Insérer des lignes ou des colonnes.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canInsertTableColumns()
ou dom.canInsertTableRows()
API JavaScript de Dreamweaver
149
000ExtendingDWU.book Page 150 Thursday, June 8, 2000 3:38 PM
dom.splitTableCell()
Disponibilité
3.0
Description
Fractionne la cellule de tableau en cours en un nombre de lignes ou de colonnes
donné. Si vous ne définissez pas l’un des deux arguments, ou les deux, la boîte de
dialogue Fractionner la cellule s’affiche.
Arguments
{colsOrRows}, {numberToSplitInto}
Le premier argument, s’il est défini, doit être "columns" ou "rows".
Le second argument, s’il est défini, indique en combien de lignes ou de
colonnes la cellule doit être fractionnée.
Renvoie
Activateur
Aucune.
dom.canSplitTableCell()
Fonctions relatives aux scénarios
Comme leur nom l’indique, ces fonctions agissent sur les scénarios. Elles
permettent d’ajouter des objets, des comportements, des cadres et des images-clés
à un scénario, de supprimer ou de modifier les objets d’un scénario, de stipuler si
un scénario doit être lu automatiquement ou exécuté en boucle automatiquement,
etc. Toutes les fonctions décrites dans cette section sont des méthodes de
dreamweaver.timelineInspector car elles agissent sur le contenu de l’inspecteur de
scénarios.
dreamweaver.timelineInspector.addBehavior()
Disponibilité
3.0
Description
Ouvre l’inspecteur de comportements et applique automatiquement l’événement
onFrameN approprié (N étant le cadre contenant la tête de lecture) lorsque
l’utilisateur choisit une action et clique sur OK.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.timelineInspector.addFrame()
Disponibilité
150
3.0
Description
Ajoute un cadre au scénario en cours, au niveau du cadre contenant la tête de
lecture.
Arguments
Aucun.
Chapitre 3
000ExtendingDWU.book Page 151 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Aucune.
dreamweaver.timelineInspector.canAddFrame()
dreamweaver.timelineInspector.addKeyframe()
Disponibilité
3.0
Description
Ajoute une image-clé à la barre d’animation sélectionnée au niveau du cadre
contenant la tête de lecture.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.timelineInspector.canAddKeyFrame()
dreamweaver.timelineInspector.addObject()
Disponibilité
3.0
Description
Ajoute l’objet actuellement sélectionné au scénario.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.timelineInspector.addTimeline()
Disponibilité
3.0
Description
Ajoute un nouveau scénario au document en cours.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.timelineInspector.changeObject()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Modifier l’objet.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.timelineInspector.canChangeObject()
API JavaScript de Dreamweaver
151
000ExtendingDWU.book Page 152 Thursday, June 8, 2000 3:38 PM
dreamweaver.timelineInspector.getAutoplay()
Disponibilité
3.0
Description
Obtient l’état de l’option Lecture auto pour le scénario en cours.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si l’option Lecture auto est activée.
Aucun.
dreamweaver.timelineInspector.getCurrentFrame()
Disponibilité
3.0
Description
Obtient le cadre en cours du scénario en cours.
Arguments
Aucun.
Renvoie
Activateur
Numéro de cadre.
Aucun.
dreamweaver.timelineInspector.getLoop()
Disponibilité
3.0
Description
Obtient l’état de l’option Boucle pour le scénario en cours.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si l’option Boucle est activée.
Aucun.
dreamweaver.timelineInspector.recordPathOfLayer()
Disponibilité
3.0
Description
Enregistre le chemin d’un calque tandis que l’utilisateur fait glisser celui-ci.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.timelineInspector.removeBehavior()
Disponibilité
152
3.0
Description
Supprime du scénario le comportement sélectionné.
Arguments
Aucun.
Chapitre 3
000ExtendingDWU.book Page 153 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Aucune.
dreamweaver.timelineInspector.canRemoveBehavior()
dreamweaver.timelineInspector.removeFrame()
Disponibilité
3.0
Description
Supprime du scénario le cadre sélectionné.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.timelineInspector.canRemoveFrame()
dreamweaver.timelineInspector.removeKeyframe()
Disponibilité
3.0
Description
Supprime d’une barre d’animation l’image-clé sélectionnée.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.timelineInspector.canRemoveKeyFrame()
dreamweaver.timelineInspector.removeObject()
Disponibilité
3.0
Description
Supprime du scénario l’objet actuellement sélectionné.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dreamweaver.timelineInspector.canRemoveObject()
dreamweaver.timelineInspector.removeTimeline()
Disponibilité
3.0
Description
Supprime du document le scénario en cours.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.timelineInspector.renameTimeline()
Disponibilité
3.0
API JavaScript de Dreamweaver
153
000ExtendingDWU.book Page 154 Thursday, June 8, 2000 3:38 PM
Description
Ouvre la boîte de dialogue Renommer le scénario pour le scénario en cours.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.timelineInspector.setAutoplay()
Disponibilité
3.0
Description
Définit l’option Lecture auto pour le scénario en cours.
Arguments
bAutoplay
L’argument est une valeur booléenne indiquant si l’option Lecture auto doit être
activée.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.timelineInspector.setCurrentFrame()
Disponibilité
3.0
Description
Déplace la tête de lecture vers le cadre spécifié.
Arguments
frameNumber
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.timelineInspector.setLoop()
Disponibilité
3.0
Description
Définit l’option Boucle pour le scénario en cours.
Arguments
bLoop
L’argument est une valeur booléenne indiquant si l’option Boucle doit être activée.
Renvoie
Activateur
Aucune.
Aucun.
Fonctions à bascule
Ces fonctions permettent d’obtenir et de définir un certain nombre d’options qui
peuvent, selon le cas, être activées ou désactivées.
154
Chapitre 3
000ExtendingDWU.book Page 155 Thursday, June 8, 2000 3:38 PM
dom.getEditNoFramesContent()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Modifier > Jeu de cadres > Modifier le contenu
sans cadres.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si le contenu de NOFRAMES est l’affichage actif (TRUE)
ou pas (FALSE).
Aucun.
dom.getPreventLayerOverlaps()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Empêcher le chevauchement des calques.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si l’option est activée (TRUE) ou désactivée (FALSE).
Aucun.
dom.getShowFrameBorders()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Affichage > Bordures de cadre.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si les bordures de cadre sont visibles (TRUE) ou
invisibles (FALSE).
Aucun.
dom.getShowGrid()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Affichage > Grille > Afficher.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si la grille est visible (TRUE) ou invisible (FALSE).
Aucun.
dom.getShowHeadView()
Disponibilité
3.0
API JavaScript de Dreamweaver
155
000ExtendingDWU.book Page 156 Thursday, June 8, 2000 3:38 PM
Description
Obtient l’état en cours de l’option Affichage > Contenu de l’en-tête.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si le contenu de l’en-tête est visible (TRUE) ou invisible
(FALSE).
Aucun.
dom.getShowImageMaps()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Affichage > Cartes graphiques.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si les cartes graphiques sont visibles (TRUE) ou
invisibles (FALSE).
Aucun.
dom.getShowLayerBorders()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Affichage > Bordures de calque.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si les bordures du calque sont visibles (TRUE) ou
invisibles (FALSE).
Aucun.
dom.getShowRulers()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Affichage > Règles > Afficher.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si les règles sont visibles (TRUE) ou invisibles (FALSE).
Aucun.
dom.getShowTableBorders()
Disponibilité
156
3.0
Description
Obtient l’état en cours de l’option Affichage > Bordures de tableau.
Arguments
Aucun.
Chapitre 3
000ExtendingDWU.book Page 157 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Valeur booléenne indiquant si les bordures de tableau sont visibles (TRUE) ou
invisibles (FALSE).
Aucun.
dom.getShowTracingImage()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Affichage > Tracé de l’image > Afficher.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si l’option est activée (TRUE) ou désactivée (FALSE).
Aucun.
dom.getSnapToGrid()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Affichage > Grille > Aligner sur.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si l’alignement sur la grille est activé (TRUE) ou
désactivé (FALSE).
Aucun.
dom.setEditNoFramesContent()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Modifier > Jeu de cadres > Modifier le
contenu sans cadres.
Arguments
bEditNoFrames
Renvoie
Activateur
Aucune.
dom.canEditNoFramesContent()
API JavaScript de Dreamweaver
157
000ExtendingDWU.book Page 158 Thursday, June 8, 2000 3:38 PM
dom.setPreventLayerOverlaps()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Empêcher le chevauchement des
calques.
Arguments
bPreventLayerOverlaps
Renvoie
Activateur
Aucune.
Aucun.
dom.setShowFrameBorders()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Affichage > Bordures de cadre.
Arguments
bShowFrameBorders
Renvoie
Activateur
Aucune.
Aucun.
dom.setShowGrid()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Affichage > Grille > Afficher.
Arguments
bShowGrid
Renvoie
Activateur
Aucune.
Aucun.
dom.setShowHeadView()
Disponibilité
Description
Active (TRUE) ou désactive (FALSE) l’option Affichage > Contenu de l’en-tête.
Arguments
bShowHead
Renvoie
Activateur
158
3.0
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 159 Thursday, June 8, 2000 3:38 PM
dom.setShowImageMaps()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Affichage > Cartes graphiques0
Arguments
bShowImageMaps
Renvoie
Activateur
Aucune.
Aucun.
dom.setShowLayerBorders()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Affichage > Bordures de calque.
Arguments
bShowLayerBorders
Renvoie
Activateur
Aucune.
Aucun.
dom.setShowRulers()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Affichage > Règles > Afficher.
Arguments
bShowRulers
Renvoie
Activateur
Aucune.
Aucun.
dom.setShowTableBorders()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Affichage > Bordures de tableau.
Arguments
bShowTableBorders
Renvoie
Activateur
Aucune.
Aucun.
dom.setShowTracingImage()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Affichage > Tracé de l’image > Afficher.
Arguments
bShowTracingImage
API JavaScript de Dreamweaver
159
000ExtendingDWU.book Page 160 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Aucune.
Aucun.
dom.setSnapToGrid()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Affichage > Grille > Aligner sur.
Arguments
bSnapToGrid
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.getHideAllFloaters()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Masquer palettes flottantes.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si l’option de menu Masquer palettes flottantes (TRUE)
ou Afficher palettes flottantes (FALSE) est disponible.
Aucun.
dreamweaver.getShowInvisibleElements()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Affichage > Eléments invisibles.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si les marqueurs d’éléments invisibles sont visibles
(TRUE) ou invisibles (FALSE).
Aucun.
dreamweaver.getShowStatusBar()
Disponibilité
Description
Obtient l’état en cours de l’option Affichage > Barre d’état.
Arguments
Aucun.
Renvoie
Activateur
160
3.0
Chapitre 3
Valeur booléenne indiquant si la barre d’état est visible (TRUE) ou invisible (FALSE).
Aucun.
000ExtendingDWU.book Page 161 Thursday, June 8, 2000 3:38 PM
dreamweaver.setHideAllFloaters()
Disponibilité
3.0
Description
Active l’option Masquer palettes flottantes (TRUE) ou l’option Afficher palettes
flottantes (FALSE).
Arguments
bShowFloatingPalettes
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.setShowInvisibleElements()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Affichage > Eléments invisibles.
Arguments
bViewInvisibleElements
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.setShowStatusBar()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Affichage > Barre d’état.
Arguments
bShowStatusBar
Renvoie
Activateur
Aucune.
Aucun.
site.getShowDependents()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Afficher les fichiers dépendants.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si les fichiers dépendants sont visibles dans la carte du
site (TRUE) ou invisibles (FALSE).
Aucun.
site.getShowHiddenFiles()
Disponibilité
Description
3.0
Obtient l’état en cours de l’option Afficher les fichiers marqués comme cachés.
API JavaScript de Dreamweaver
161
000ExtendingDWU.book Page 162 Thursday, June 8, 2000 3:38 PM
Arguments
Renvoie
Activateur
Aucun.
Valeur booléenne indiquant si les fichiers cachés sont visibles dans la carte du site
(TRUE) ou invisibles (FALSE).
Aucun.
site.getShowPageTitles()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Afficher les titres de page.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si les titres de page sont visibles dans la carte du site
(TRUE) ou invisibles (FALSE).
Aucun.
site.getShowToolTips()
Disponibilité
3.0
Description
Obtient l’état en cours de l’option Info-bulles.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si les info-bulles sont visibles dans la carte du site
(TRUE) ou invisibles (FALSE).
Aucun.
site.setShowDependents()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Afficher les fichiers dépendants dans la
carte du site.
Arguments
bShowDependentFiles
Renvoie
Activateur
Aucune.
Aucun.
site.setShowHiddenFiles()
Disponibilité
162
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Afficher les fichiers marqués comme
cachés dans la carte du site.
Arguments
bShowHiddenFiles
Chapitre 3
000ExtendingDWU.book Page 163 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Aucune.
Aucun.
site.setShowPageTitles()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Afficher les titres de page dans la carte
du site.
Arguments
bShowPageTitles
Renvoie
Activateur
Aucune.
site.canShowPageTitles()
site.setShowToolTips()
Disponibilité
3.0
Description
Active (TRUE) ou désactive (FALSE) l’option Info-bulles.
Arguments
bShowToolTips
Renvoie
Activateur
Aucune.
Aucun.
Fonctions relatives à la traduction (conversion)
de données
Ces fonctions permettent d’agir directement sur les traducteurs de données ou sur
les résultats de la traduction. Elles permettent d’exécuter ou d’obtenir des
informations sur un traducteur, de modifier le contenu d’une région verrouillée et
de stipuler que le code traduit doit être utilisé lors de l’obtention et de la définition
de décalages de sélection.
dom.runTranslator()
Disponibilité
3.0
Description
Exécute le traducteur spécifié sur le document. Cette fonction n’est valide que
pour le document actif.
Arguments
translatorName
L’argument est le nom d’un traducteur tel qu’il apparaît dans les préférences de
traduction.
Renvoie
Activateur
Aucune.
Aucun.
API JavaScript de Dreamweaver
163
000ExtendingDWU.book Page 164 Thursday, June 8, 2000 3:38 PM
dreamweaver.editLockedRegions()
Disponibilité
Description
2.0
Selon la valeur de l’argument, autorise ou n’autorise pas la modification des
régions verrouillées. Par défaut, les régions verrouillées ne peuvent pas être
modifiées. Si vous tentez de modifier une région verrouillée avant de la rendre
modifiable, Dreamweaver émet un bip et interdit la modification.
Remarque : la modification de régions verrouillées peut avoir des conséquences
inattendues sur les éléments de bibliothèque et les modèles. Il est déconseillé d’utiliser cette
fonction en dehors du contexte des traducteurs de données.
Arguments
bAllowEdits
L’argument est une valeur booléenne indiquant que les modifications sont
autorisées (TRUE) ou interdites (FALSE). Dreamweaver restaure automatiquement
l’état par défaut (non modifiable) des régions verrouillées lorsque l’exécution du
script qui appelle la fonction prend fin.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.getTranslatorList()
Disponibilité
3.0
Description
Obtient la liste des traducteurs de données installés.
Arguments
Aucun.
Renvoie
Activateur
Tableau de chaînes, chacune représentant le nom d’un traducteur tel qu’il apparaît
dans les préférences de traduction.
Aucun.
dreamweaver.useTranslatedSource()
Disponibilité
Description
2.0
Indique que les valeurs renvoyées par les fonctions dreamweaver.nodeToOffsets() et
dreamweaver.getSelection() et utilisées par les fonctions dreamweaver.offsetsToNode() et
dreamweaver.setSelection() doivent être décalées dans le code source converti (code
HTML contenu dans l’arborescence DOM après exécution d’un traducteur) et
non dans le code source non converti.
Remarque : cette fonction ne s’applique qu’aux fichiers d’inspecteur de propriétés.
Arguments
164
Chapitre 3
bUseTranslatedSource
000ExtendingDWU.book Page 165 Thursday, June 8, 2000 3:38 PM
La valeur par défaut de l’argument est FALSE. Lorsque le script appelant la fonction
dw.useTranslatedSource() prend fin, Dreamweaver utilise automatiquement le code
source non converti pour les appels suivants de dw.getSelection(), dw.setSelection(),
dw.nodeToOffsets() et dw.offsetsToNode(), sauf si la fonction dw.useTranslatedSource()
est appelée explicitement avec l’argument FALSE avant la fin de l’exécution du
script.
Renvoie
Activateur
Aucune.
Aucun.
Fonctions relatives à la mise en forme visuelle
Ces fonctions, comme leur nom l’indique, agissent sur la mise en forme. Elles
permettent de modifier la source, la position et l’opacité du tracé de l’image,
d’obtenir et de définir l’origine et les unités de mesure de la règle, d’activer et de
désactiver la grille et de modifier ses paramètres, de démarrer et d’arrêter
l’exécution des plug-ins.
dom.getRulerOrigin()
Disponibilité
3.0
Description
Obtient l’origine de la règle.
Arguments
Aucun.
Renvoie
Activateur
Tableau contenant deux entiers. Le premier entier correspond à la coordonnée x
de l’origine, et le second à la coordonnée y. Les deux valeurs sont exprimées en
pixels.
Aucun.
dom.getRulerUnits()
Disponibilité
3.0
Description
Obtient les unités de mesure actuelles de la règle.
Arguments
Aucun.
Renvoie
Chaîne contenant l’une des valeurs suivantes :
"in"
"cm"
"px"
Activateur
Aucun.
API JavaScript de Dreamweaver
165
000ExtendingDWU.book Page 166 Thursday, June 8, 2000 3:38 PM
dom.getTracingImageOpacity()
Disponibilité
3.0
Description
Obtient le paramètre d’opacité du tracé de l’image dans le document en cours.
Arguments
Aucun.
Renvoie
Activateur
Valeur comprise entre 0 et 100, ou rien si l’opacité n’est pas définie.
dom.hasTracingImage()
dom.loadTracingImage()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Sélectionner source de l’image. Si l’utilisateur
sélectionne une image et clique sur OK, la boîte de dialogue Propriétés de la page
s’ouvre et le champ Tracé de l’image contient une valeur.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.playAllPlugins()
Disponibilité
3.0
Description
Exécute tous les plug-ins dans le document.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.playPlugin()
Disponibilité
3.0
Description
Exécute le plug-in sélectionné.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.canPlayPlugin()
dom.setRulerOrigin()
Disponibilité
Description
166
Chapitre 3
3.0
Définit l’origine de la règle.
000ExtendingDWU.book Page 167 Thursday, June 8, 2000 3:38 PM
Arguments
xCoordinate, yCoordinate
Le premier argument est une valeur, exprimée en pixels, sur l’axe horizontal.
Le second argument est une valeur, exprimée en pixels, sur l’axe vertical.
Renvoie
Activateur
Aucune.
Aucun.
dom.setRulerUnits()
Disponibilité
3.0
Description
Définit les unités de mesure de la règle.
Arguments
units
L’argument doit être "px", "in" ou "cm".
Renvoie
Activateur
Aucune.
Aucun.
dom.setTracingImagePosition()
Disponibilité
3.0
Description
Déplace le coin supérieur gauche du tracé de l’image vers les coordonnées
spécifiées. Si cet argument n’est pas défini, la boîte de dialogue Propriétés de la
page s’affiche.
Arguments
x, y
Renvoie
Activateur
Aucune.
dom.hasTracingImage()
dom.setTracingImageOpacity()
Disponibilité
3.0
Description
Définit le pourcentage d’opacité du tracé de l’image.
Arguments
opacityPercentage
L’argument doit être un nombre compris entre 0 et 100.
Renvoie
Activateur
Exemple
Aucune.
dom.hasTracingImage()
L’exemple de code suivant règle l’opacité du tracé de l’image sur 30%.
dw.getDocumentDOM().setTracingOpacity(’30’);
API JavaScript de Dreamweaver
167
000ExtendingDWU.book Page 168 Thursday, June 8, 2000 3:38 PM
dom.snapTracingImageToSelection()
Disponibilité
3.0
Description
Aligne le coin supérieur gauche du tracé de l’image avec le coin supérieur gauche
de la sélection en cours.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
dom.hasTracingImage()
dom.stopAllPlugins()
Disponibilité
3.0
Description
Arrête l’exécution de tous les plug-ins en cours dans le document.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dom.stopPlugin()
Disponibilité
3.0
Description
Arrête l’exécution du plug-in sélectionné.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si la sélection est actuellement exécutée avec un plugin.
dom.canStopPlugin()
dreamweaver.arrangeFloatingPalettes()
Disponibilité
Description
Déplace les palettes flottantes visibles vers leur position par défaut.
Arguments
Aucun.
Renvoie
Activateur
168
3.0
Chapitre 3
Aucune.
Aucun.
000ExtendingDWU.book Page 169 Thursday, June 8, 2000 3:38 PM
dreamweaver.showGridSettingsDialog()
Disponibilité
3.0
Description
Ouvre la boîte de dialogue Paramètres de la grille.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
Fonctions relatives aux fenêtres
Ces fonctions permettent d’agir sur la fenêtre du document et sur les palettes
flottantes. Elles permettent d’afficher et de masquer les palettes flottantes, de
déterminer quelle est la partie active de la fenêtre du document et de définir le
document actif. Pour les opérations relatives à la fenêtre Site, voir « Fonctions
relatives aux sites » à la page 128.
dom.getFocus()
Disponibilité
3.0
Description
Détermine quelle est la partie active du document.
Arguments
Aucun.
Renvoie
L’une des chaînes suivantes :
"head" si la zone HEAD est active ;
"body" si la zone BODY ou NOFRAMES est active ;
"frameset" si un jeu de cadres ou l’un quelconque des cadres qui le composent est
sélectionné ;
"none" si la zone active n’est pas dans le document (si elle se trouve dans
l’inspecteur de propriétés, par exemple, ou dans une autre palette flottante).
Activateur
Aucun.
dom.getWindowTitle()
Disponibilité
3.0
Description
Obtient le titre de la fenêtre contenant le document.
Arguments
Aucun.
API JavaScript de Dreamweaver
169
000ExtendingDWU.book Page 170 Thursday, June 8, 2000 3:38 PM
Renvoie
Activateur
Chaîne contenant le texte qui apparaît entre les balises TITLE du document, ou rien
si le document ne figure pas dans une fenêtre ouverte.
Aucun.
dreamweaver.getActiveWindow()
Disponibilité
3.0
Description
Obtient le document figurant dans la fenêtre active.
Arguments
Aucun.
Renvoie
Activateur
Objet document correspondant au document qui figure dans la fenêtre active, ou,
si le document figure dans un cadre, objet document correspondant au jeu de
cadres.
Aucun.
dreamweaver.getDocumentList()
Disponibilité
3.0
Description
Obtient la liste de tous les documents ouverts.
Arguments
Aucun.
Renvoie
Activateur
Tableau d’objets document, chacun correspondant à une fenêtre de document
ouverte. Si une fenêtre de document contient un jeu de cadres, l’objet document
désigne le jeu de cadres et non le contenu des cadres.
Aucun.
dreamweaver.getFocus()
Disponibilité
3.0
Description
Détermine quelle est la partie active de l’application.
Arguments
bAllowFloaters
Renvoie
L’une des chaînes suivantes :
"document" si la fenêtre du document est active ;
"site" si la fenêtre Site est active ;
floaterName si bAllowFloaters est TRUE et qu’une palette flottante est active,
floaterName correspondant à "objects", "properties", "launcher", "library", "css styles",
"html styles", "behaviors", "timelines", "html", "layers", "frames", "templates", "history" "data
bindings" ou "server behaviors".
170
Chapitre 3
000ExtendingDWU.book Page 171 Thursday, June 8, 2000 3:38 PM
(Macintosh) "none" si ni la fenêtre Site, ni une fenêtre de document n’est
ouverte.
Activateur
Aucun.
dreamweaver.getFloaterVisibility()
Disponibilité
3.0
Description
Vérifie si la palette ou l’inspecteur spécifié est visible.
Arguments
floaterName
L’argument est le nom d’une palette flottante. Les palettes intégrées doivent être
référencées à l’aide de l’une des chaînes suivantes : "objects", "properties", "launcher",
"site files", "site map", "library", "css styles", "html styles", "behaviors", "timelines", "html",
"layers", "frames", "templates", "history""data bindings" ou "server behaviors". Si l’argument
floaterName ne correspond pas au nom d’une palette intégrée, Dreamweaver
recherche dans le dossier Configuration/Floaters un fichier intitulé
floaterName.htm.
Renvoie
Activateur
TRUE si la palette flottante est visible et se trouve au premier plan, FALSE si ce n’est
pas le cas ou que Dreamweaver ne trouve pas de palette flottante nommée
floaterName.
Aucun.
dreamweaver.setActiveWindow()
Disponibilité
3.0
Description
Active la fenêtre contenant le document spécifié.
Arguments
documentObject, {bActivateFrame}
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
Le second argument, applicable uniquement si documentObject se trouve à
l’intérieur d’un jeu de cadres, est une valeur booléenne indiquant s’il faut
activer non seulement la fenêtre contenant le jeu de cadres, mais également le
cadre contenant le document.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.setFloaterVisibility()
Disponibilité
3.0
Description
Indique s’il faut rendre visible une palette flottante ou un inspecteur spécifique.
Arguments
floaterName, bIsVisible
API JavaScript de Dreamweaver
171
000ExtendingDWU.book Page 172 Thursday, June 8, 2000 3:38 PM
L’argument est le nom d’une palette flottante. Les palettes intégrées doivent être
référencées à l’aide de l’une des chaînes suivantes : "objects", "properties",
"launcher", "site files", "site map", "library", "css styles", "html styles", "behaviors",
"timelines", "html", "layers", "frames", "templates", "history""data bindings" ou "server
behaviors". Si floaterName ne correspond pas au nom d’une palette intégrée,
Dreamweaver recherche dans le dossier Configuration/Floaters un fichier
nommé floaterName.htm. Si Dreamweaver ne trouve aucun fichier de ce nom,
cette fonction n’a aucun effet.
Le second argument est une valeur booléenne indiquant s’il faut rendre la
palette flottante visible.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.showProperties()
Disponibilité
3.0
Description
Rend l’inspecteur de propriétés visible et l’active.
Arguments
Aucun.
Renvoie
Activateur
Aucune.
Aucun.
dreamweaver.toggleFloater()
Disponibilité
Description
3.0
Affiche, masque ou place au premier plan la palette ou l’inspecteur spécifié.
Remarque : cette fonction n’a de sens que dans le fichier menus.xml. Pour afficher, placer
au premier plan ou masquer une palette flottante, utilisez la fonction
dw.setFloaterVisibility().
Arguments
Renvoie
Activateur
floaterName
Aucune.
Aucun.
Fonctions déconseillées
Ces fonctions existent toujours, mais des fonctions plus récentes les ont
remplacées dans la présente version de Dreamweaver. Nous vous recommandons
d’utiliser ces dernières, car il est possible que les anciennes fonctions soient
supprimées des futures versions de Dreamweaver.
172
Chapitre 3
000ExtendingDWU.book Page 173 Thursday, June 8, 2000 3:38 PM
dreamweaver.getBehaviorEvent()
Disponibilité
version 1.2, déconseillée dans la version 2.0 car les actions sont désormais choisies
avant les événements.
Description
Dans un fichier d’action de comportement, obtient l’événement qui déclenche
l’action.
Arguments
Aucun.
Renvoie
Chaîne représentant l’événement. Il s’agit de la chaîne transmise à la fonction
canAcceptBehavior() sous la forme d’un argument (event).
Exemple
Dans l’exemple suivant, la fonction getBehaviorEvent() provient de la fonction
initializeUI() du fichier d’action Drag Layer (Faire glisser le calque). Le rôle du
segment de code suivant est similaire à celui de canAcceptBehavior(), c’est-à-dire
qu’il vérifie si l’événement sélectionné est adapté à l’action sélectionnée. Ce type
de construction est plus utile que canAcceptBehavior(), car il vous permet d’indiquer
à l’utilisateur quels sont les événements permettant d’appeler l’action sélectionnée.
canAcceptBehavior() rend l’action indisponible dans le menu déroulant des actions
uniquement si l’utilisateur choisit un événement inadapté.
theEvent = dreamweaver.getBehaviorEvent().toLowerCase();
CANBEAPPLIED = (theEvent != "onmousedown" && theEvent != "onmousemove");
if (CANBEAPPLIED) {
[display the Drag Layer UI]
} else{
[display a helpful message that tells the user which events are appropriate for
the Drag Layer action.]
}
dreamweaver.getObjectRefs()
Disponibilité
1.0
Description
Recherche, dans les documents indiqués, les instances des balises spécifiées (ou, si
aucune balise n’est spécifiée, toutes les balises du document) et fournit des
références aux balises en fonction du navigateur. Cette fonction revient à appeler
la fonction getElementsByTagName(), puis la fonction dreamweaver.getElementRef()
pour chaque balise de la nodelist.
Arguments
NSorIE, sourceDoc, {tag1}, {tag2},... {tagN}
Le premier argument doit être "NS 4.0" ou "IE 4.0". En effet, le DOM et les règles
relatives aux références imbriquées diffèrent dans Navigator 4.0 et Internet
Explorer 4.0. Cet argument permet d’indiquer à quel navigateur doit
correspondre la référence renvoyée.
API JavaScript de Dreamweaver
173
000ExtendingDWU.book Page 174 Thursday, June 8, 2000 3:38 PM
Le second argument doit être "document", "parent", "parent.frames[number]",
ou une URL. "document" désigne le document actif
et contenant la sélection en cours. "parent" désigne le jeu de cadres parent (si le
document sélectionné se trouve dans un cadre) et "parent.frames[number]" et
"parent.frames[’frameName’]" désignent un document figurant dans un cadre
spécifique du jeu de cadres contenant le document en cours. Si l’argument est
une URL relative, celle-ci est relative au fichier d’extension.
"parent.frames[’frameName’]"
Le troisième argument et les arguments suivants, s’ils sont définis,
correspondent aux noms de balises (par exemple "IMG", "FORM", "HR").
Renvoie
Tableau de chaînes, chacune représentant une référence JavaScript valide à une
instance nommée du type de balise demandé dans le document spécifié (par
exemple "document.myLayer.document.myImage") pour le navigateur spécifié.
Dreamweaver renvoie des références Internet Explorer correctes pour les balises
suivantes : A, AREA, APPLET, EMBED, DIV, SPAN, INPUT, SELECT, OPTION, TEXTAREA,
OBJECT et IMG.
Dreamweaver renvoie des références Navigator correctes pour les balises
suivantes : A, AREA, APPLET, EMBED, LAYER, ILAYER, SELECT, OPTION, TEXTAREA,
OBJECT et IMG et pour les balises DIV et SPAN à positionnement absolu. Pour les
balises DIV et SPAN dont le positionnement n’est pas absolu, Dreamweaver
renvoie "cannot reference <tag>".
Dreamweaver ne renvoie pas de références pour les objets non nommés. Si un
objet ne contient pas d’attribut NAME ou ID, Dreamweaver renvoie "unnamed
<tag>". Si le navigateur ne prend pas en charge une référence par nom,
Dreamweaver fait référence à l’objet à l’aide de son index (par exemple
document.myform.applets[3]).
Dreamweaver ne renvoie pas de références pour les objets nommés figurant
dans des formulaires ou des calques non nommés (par exemple
document.forms[2].myCheckbox).
Lorsque la même liste d’arguments est transmise à la fonction getObjectTags(), les
deux fonctions renvoient des tableaux de même longueur et de contenus
identiques.
Exemple
Selon le contenu du document actif, dreamweaver.getObjectRefs("NS 4.0", "document",
"IMG") pourrait renvoyer un tableau contenant les éléments suivants :
"document.bullet"
"document.layers[’headerLayer’].document.header"
"document.photoLayer.document.headshot"
dreamweaver.getObjectTags()
Disponibilité
174
Chapitre 3
1.0
000ExtendingDWU.book Page 175 Thursday, June 8, 2000 3:38 PM
Description
Recherche, dans le document indiqué, les instances des balises spécifiées ou, si
aucune balise n’est spécifiée, toutes les balises du document. Cette fonction revient
à appeler la fonction getElementsByTagName(), puis la fonction outerHTML() pour
chaque balise de la nodelist.
Arguments
sourceDoc, {tag1}, {tag2},... {tagN}
Le premier argument doit être "document", "parent", "parent.frames[number]",
"parent.frames[’frameName’]" ou une URL. document désigne le document actif
contenant la sélection en cours. parent désigne le jeu de cadres parent (si le
document sélectionné se trouve dans un cadre) et parent.frames[number] et
parent.frames[’frameName’] désignent un document figurant dans un cadre
spécifique du jeu de cadres contenant le document en cours. Si l’argument est
une URL relative, celle-ci est relative au fichier d’extension.
Le second argument et les arguments suivants, s’il en existe, correspondent aux
noms de balises (par exemple "IMG", "FORM", "HR").
Renvoie
Tableau de chaînes, chacune correspondant au code source HTML d’une instance
du type de balise demandé dans le document spécifié.
Si l’un des arguments de tag est LAYER, la fonction renvoie toutes les balises
LAYER
et ILAYER et toutes les balises DIV et SPAN à positionnement absolu.
Si l’un des arguments de tag est INPUT, la fonction renvoie tous les éléments du
formulaire. Pour obtenir un type d’élément particulier du formulaire, définissez
INPUT/TYPE, TYPE correspondant à button, text, radio, checkbox, password, textarea,
select, hidden, reset ou submit.
Lorsque la même liste d’arguments est transmise à la fonction getObjectRefs(), les
deux fonctions renvoient des tableaux de même longueur.
Exemple
Selon le contenu du document actif, dreamweaver.getObjectTags("document", "IMG")
pourrait renvoyer un tableau contenant les éléments suivants :
’<IMG SRC="/images/dot.gif" WIDTH="10" HEIGHT="10" NAME="bullet">’
’<IMG SRC="header.gif" WIDTH="400" HEIGHT="32" NAME="header">’
’<IMG SRC="971208_nj.jpg" WIDTH="119" HEIGHT="119" NAME="headshot">’
dreamweaver.getSelection()
Disponibilité
version 2.0, déconseillée dans la version 3.0 ; utiliser à la place dom.getSelection().
Description
Obtient la sélection en cours, exprimée en décalages d’octets dans le code source
HTML du document.
Arguments
Aucun.
Renvoie
Tableau contenant deux entiers. Le premier entier correspond au décalage d’octets
au début de la sélection, le second au décalage d’octets à la fin de la sélection. Si les
deux valeurs sont identiques, la sélection en cours correspond à un point
d’insertion.
API JavaScript de Dreamweaver
175
000ExtendingDWU.book Page 176 Thursday, June 8, 2000 3:38 PM
dreamweaver.nodeToOffsets()
Disponibilité
version 2.0, déconseillée dans la version 3.0 ; utiliser à la place dom.nodeToOffsets().
Description
Obtient la position d’un nœud de l’arborescence DOM, exprimée en décalages
d’octets dans le code source HTML du document.
Arguments
node
L’argument doit être une balise, un commentaire ou un texte correspondant à un
nœud de l’arborescence renvoyée par la fonction dreamweaver.getDocumentDOM().
Renvoie
Tableau contenant deux entiers. Le premier correspond au décalage d’octets au
début de la balise, du texte ou du commentaire, le second au décalage d’octets à la
fin du nœud.
Exemple
L’exemple de code suivant sélectionne le premier objet image du document en
cours :
var theDOM = dreamweaver.getDocumentDOM("document");
var theImg = theDOM.images[0];
var offsets = dreamweaver.nodeToOffsets(theImg);
dreamweaver.setSelection(offsets[0], offsets[1]);
dreamweaver.offsetsToNode()
Disponibilité
version 2.0, déconseillée dans la version 3.0 ; utiliser à la place dom.offsetsToNode().
Description
Obtient l’objet de l’arborescence DOM contenant la série de caractères située
entre le début et la fin définis.
Arguments
offsetBegin, offsetEnd
Les arguments correspondent respectivement au début et à la fin d’une série de
caractères, exprimés en décalages d’octets dans le code source HTML du
document.
Renvoie
Objet tag, text ou comment contenant la série de caractères spécifiée.
Exemple
Le code suivant affiche une alerte si la sélection est une image.
var offsets = dreamweaver.getSelection();
var theSelection = dreamweaver.offsetsToNode(offsets[0], offsets[1]);
if (theSelection.nodeType == Node.ELEMENT_NODE && theSelection.tagName == ‘IMG’){
alert(’The current selection is an image.’);
}
dreamweaver.popupCommand()
Disponibilité
176
Chapitre 3
version 2.0, déconseillée dans la version 3.0 ; utiliser à la place
dreamweaver.runCommand().
000ExtendingDWU.book Page 177 Thursday, June 8, 2000 3:38 PM
Description
Exécute la commande spécifiée. Pour l’utilisateur, cela revient à choisir la
commande dans un menu ; si une boîte de dialogue est associée à la commande,
elle s’affiche. Cette fonction permet d’appeler une commande à partir d’un autre
fichier d’extension. L’utilisateur ne peut effectuer aucune autre modification tant
qu’il n’a pas fermé la boîte de dialogue.
Remarque : cette fonction ne peut être appelée qu’à partir de la fonction objectTag() ou
d’un script de fichier de commande ou d’inspecteur de propriétés.
Arguments
commandFile
L’argument correspond au nom d’un fichier de commande du dossier
Configuration/Commands ("Format Table.htm", par exemple).
Renvoie
Aucune.
dreamweaver.setSelection()
Disponibilité
version 2.0, déconseillée dans la version 3.0 ; utiliser à la place dom.setSelection().
Description
Définit la sélection dans le document en cours. Cette fonction ne peut déplacer la
sélection qu’à l’intérieur du document en cours. Elle ne peut pas rendre un autre
document actif.
Arguments
offsetBegin, offsetEnd
Les arguments correspondent respectivement au début et à la fin de la nouvelle
sélection, exprimés en décalages d’octets dans le code source HTML du
document. Si les deux valeurs sont identiques, la nouvelle sélection correspond à
un point d’insertion. Si la nouvelle sélection n’est pas une sélection HTML valide,
elle inclut les caractères de la première sélection HTML valide. Par exemple, si
offsetBegin et offsetEnd définissent SRC="myImage.gif" comme sélection dans <IMG
SRC="myImage.gif">, la sélection est étendue pour inclure également la balise IMG.
Renvoie
Aucune.
Activateurs
Les activateurs sont des fonctions qui déterminent si les éléments de menu doivent
être activés ou pas, selon que Dreamweaver peut effectuer ou non l’opération
correspondante dans le contexte en cours. Les circonstances générales dans
lesquelles chaque fonction renvoie la valeur TRUE sont décrites dans la spécification
de fonction correspondante. Toutefois, ces descriptions ne prétendent pas être
exhaustives et ne couvrent pas nécessairement tous les cas où la fonction renverrait
la valeur FALSE.
dom.canAlign()
Disponibilité
3.0
API JavaScript de Dreamweaver
177
000ExtendingDWU.book Page 178 Thursday, June 8, 2000 3:38 PM
Description
Vérifie si Dreamweaver peut effectuer une opération Aligner à gauche, Aligner à
droite, Aligner en haut ou Aligner en bas.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si deux calques ou zones réactives, ou plus, sont
sélectionnés.
dom.canApplyTemplate()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Appliquer à la page. Cette
fonction n’est valide que pour le document actif.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si le document n’est pas un élément de bibliothèque
ni un modèle, et si la sélection n’est pas comprise entre les balises NOFRAMES.
dom.canArrange()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Mettre au premier plan ou
Mettre en arrière-plan.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si une zone réactive est sélectionnée.
dom.canClipCopyText()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Copier comme texte.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la sélection est une plage (par opposition à un point
d’insertion).
dom.canClipPaste()
Disponibilité
Description
Détermine si Dreamweaver peut effectuer une opération Coller.
Arguments
Aucun.
Renvoie
178
3.0
Chapitre 3
Valeur booléenne indiquant si le Presse-papiers contient un élément pouvant être
collé dans Dreamweaver.
000ExtendingDWU.book Page 179 Thursday, June 8, 2000 3:38 PM
dom.canClipPasteText()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Coller comme texte.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si le Presse-papiers contient un élément pouvant être
collé dans Dreamweaver comme texte.
dom.canConvertLayersToTable()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Convertir les calques en
tableau.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si tout le contenu de la section BODY du document
figure dans des calques.
dom.canConvertTablesToLayers()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Convertir les tableaux en
calques.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si tout le contenu de la section BODY du document
figure dans des tableaux, et si le document n’est pas basé sur un modèle.
dom.canDecreaseColspan()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Réduire l’étendue de
colonnes.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la cellule en cours possède un attribut COLSPAN et si
la valeur de cet attribut est supérieure ou égale à 2.
dom.canDecreaseRowspan()
Disponibilité
Description
3.0
Détermine si Dreamweaver peut effectuer une opération Réduire l’étendue de
lignes.
API JavaScript de Dreamweaver
179
000ExtendingDWU.book Page 180 Thursday, June 8, 2000 3:38 PM
Arguments
Renvoie
Aucun.
Valeur booléenne indiquant si la cellule en cours possède un attribut ROWSPAN et
si la valeur de cet attribut est supérieure ou égale à 2.
dom.canDeleteTableColumn()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer la colonne.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si le point d’insertion se trouve dans une cellule ou si
une cellule ou une colonne est sélectionnée.
dom.canDeleteTableRow()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer la ligne.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si le point d’insertion se trouve dans une cellule ou si
une cellule ou une ligne est sélectionnée.
dom.canEditNoFramesContent()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Modifier le contenu sans
cadres.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si le document en cours est un jeu de cadres ou s’il
figure dans un jeu de cadres.
dom.canIncreaseColspan()
Disponibilité
Description
Détermine si Dreamweaver peut effectuer une opération Augmenter l’étendue de
colonnes.
Arguments
Aucun.
Renvoie
180
3.0
Chapitre 3
Valeur booléenne indiquant s’il existe des cellules à droite de la cellule en cours.
000ExtendingDWU.book Page 181 Thursday, June 8, 2000 3:38 PM
dom.canIncreaseRowspan()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Augmenter l’étendue de
lignes.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant s’il existe des cellules au dessous de la cellule en cours.
dom.canInsertTableColumns()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Insérer une colonne.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la sélection se trouve dans un tableau. Si la sélection
consiste en un tableau entier, cette fonction renvoie la valeur FALSE.
dom.canInsertTableRows()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Insérer une ligne.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la sélection se trouve dans un tableau. Si la sélection
consiste en un tableau entier, cette fonction renvoie la valeur FALSE.
dom.canMakeNewEditableRegion()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Nouvelle région
modifiable.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si le document en cours est un fichier de
modèle (.dwt).
API JavaScript de Dreamweaver
181
000ExtendingDWU.book Page 182 Thursday, June 8, 2000 3:38 PM
dom.canMarkSelectionAsEditable()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Marquer la sélection comme
modifiable.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant s’il existe une sélection et si le document en cours est
un fichier de modèle (.dwt).
dom.canMergeTableCells()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Fusionner les cellules.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la sélection est un groupement rectangulaire de
cellules de tableaux.
dom.canPlayPlugin()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Exécuter. Cette fonction
n’est valide que pour le document actif.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la sélection peut être exécutée avec un plug-in.
dom.canRedo()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Rétablir.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant s’il reste des opérations à rétablir.
dom.canRemoveEditableRegion()
Disponibilité
Description
Détermine si Dreamweaver peut effectuer une opération Rendre la région non
modifiable.
Arguments
Aucun.
Renvoie
182
3.0
Chapitre 3
Valeur booléenne indiquant si le document en cours est un modèle.
000ExtendingDWU.book Page 183 Thursday, June 8, 2000 3:38 PM
dom.canSelectTable()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Sélectionner le tableau.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la sélection ou le point d’insertion se trouve dans
un tableau.
dom.canSetLinkHref()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut modifier le lien qui entoure la sélection en cours ou
en créer un si nécessaire.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la sélection est une image, un texte ou un point
d’insertion à l’intérieur d’un lien. Une sélection de texte se définit comme une
sélection pour laquelle l’inspecteur de propriétés de texte s’ouvrirait.
dom.canShowListPropertiesDialog()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut afficher la boîte de dialogue Propriétés de la liste.
Arguments
Aucun.
Renvoie
Activateur
Valeur booléenne indiquant si la sélection est comprise entre des balises LI.
Aucun.
dom.canSplitFrame()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Fractionner le cadre [à
gauche | à droite | vers le haut | vers le bas]
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la sélection se trouve dans un cadre.
dom.canSplitTableCell()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Fractionner la cellule.
Arguments
Aucun.
API JavaScript de Dreamweaver
183
000ExtendingDWU.book Page 184 Thursday, June 8, 2000 3:38 PM
Renvoie
Valeur booléenne indiquant si le point d’insertion se trouve dans un tableau ou si
la sélection est une cellule de tableau.
dom.canStopPlugin()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Arrêter.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la sélection est actuellement exécutée avec un plugin.
dom.canUndo()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Annuler.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant s’il reste des opérations à annuler.
dom.hasTracingImage()
Disponibilité
3.0
Description
Détermine si le document possède un tracé d’image.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si le document possède un tracé d’image.
dreamweaver.canClipCopy()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Copier.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant s’il existe un élément sélectionné pouvant être copié
dans le Presse-papiers.
dreamweaver.canClipCut()
Disponibilité
184
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Couper.
Arguments
Aucun.
Chapitre 3
000ExtendingDWU.book Page 185 Thursday, June 8, 2000 3:38 PM
Renvoie
Valeur booléenne indiquant s’il existe un élément sélectionné pouvant être coupé
et placé dans le Presse-papiers.
dreamweaver.canClipPaste()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Coller.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si le contenu du Presse-papiers, le cas échéant, peut
être collé dans le document en cours, dans le volet actif de la fenêtre Site ou, sur
Macintosh, dans un champ modifiable d’une palette flottante ou d’une boîte de
dialogue.
dreamweaver.canDeleteSelection()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut supprimer la sélection en cours. Celle-ci peut se
trouver, selon le cas, dans la fenêtre de document, dans la fenêtre Site ou dans un
champ modifiable d’une palette flottante ou d’une boîte de dialogue (Macintosh).
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la sélection est une plage (par opposition à un point
d’insertion).
dreamweaver.canExportCSS()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Exporter les styles CSS.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si des styles de classe sont définis dans la section HEAD
du document.
dreamweaver.canFindNext()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Rechercher suivant.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si un modèle de recherche a été défini.
API JavaScript de Dreamweaver
185
000ExtendingDWU.book Page 186 Thursday, June 8, 2000 3:38 PM
dreamweaver.canOpenInFrame()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Ouvrir dans un cadre.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la sélection ou le point d’insertion se trouve dans
un cadre.
dreamweaver.canPlayRecordedCommand()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Reproduire la
commande enregistrée.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant s’il existe un document actif et une commande
mémorisée pouvant être exécutée.
dreamweaver.canRedo()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Rétablir dans le contexte en
cours.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant s’il existe des opérations pouvant être annulées.
dreamweaver.canRevertDocument()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Rétablir (Revenir au dernier
état enregistré).
Arguments
documentObject
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
Renvoie
186
Chapitre 3
Valeur booléenne indiquant si le document est à l’état non enregistré et s’il en
existe une version enregistrée sur un lecteur local.
000ExtendingDWU.book Page 187 Thursday, June 8, 2000 3:38 PM
dreamweaver.canSaveAll()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Enregistrer tout.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si deux documents non enregistrés, ou plus, sont
ouverts.
dreamweaver.canSaveDocument()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Enregistrer sur le document
spécifié.
Arguments
documentObject
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
Renvoie
Valeur booléenne indiquant si le document contient des modifications non
enregistrées.
dreamweaver.canSaveDocumentAsTemplate()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Enregistrer comme modèle
sur le document spécifié.
Arguments
documentObject
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
Renvoie
Valeur booléenne indiquant si le document peut être enregistré comme modèle.
dreamweaver.canSaveFrameset()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Enregistrer le jeu de cadres
sur le document spécifié.
Arguments
documentObject
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
Renvoie
Valeur booléenne indiquant si le document est un jeu de cadres comportant des
modifications non enregistrées.
API JavaScript de Dreamweaver
187
000ExtendingDWU.book Page 188 Thursday, June 8, 2000 3:38 PM
dreamweaver.canSaveFramesetAs()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Enregistrer le jeu de cadres
sous sur le document spécifié.
Arguments
documentObject
L’argument est l’objet situé à la racine de l’arborescence DOM d’un document
(valeur renvoyée par dreamweaver.getDocumentDOM()).
Renvoie
Valeur booléenne indiquant si le document est un jeu de cadres.
dreamweaver.canSelectAll()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Sélectionner tout.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant s’il est possible d’effectuer une opération Sélectionner
tout.
dreamweaver.canShowFindDialog()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Rechercher.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la fenêtre Site ou une fenêtre de document est
ouverte. Cette fonction renvoie la valeur FALSE lorsque la sélection se trouve dans
la section HEAD.
dreamweaver.canUndo()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Annuler dans le contexte en
cours.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant s’il existe des opérations pouvant être annulées.
dreamweaver.isRecording()
Disponibilité
Description
188
Chapitre 3
3.0
Indique si Dreamweaver est en train de mémoriser une commande.
000ExtendingDWU.book Page 189 Thursday, June 8, 2000 3:38 PM
Arguments
Renvoie
Aucun.
Valeur booléenne indiquant si Dreamweaver est en train de mémoriser une
commande.
dreamweaver.htmlStylePalette.canEditSelection()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut modifier, supprimer ou dupliquer la sélection dans la
palette de styles HTML.
Arguments
Aucun.
Renvoie
Valeur booléenne. Cette fonction renvoie la valeur FALSE si aucun style n’est
sélectionné ou que l’un des styles “indéterminés” est sélectionné.
dreamweaver.timelineInspector.canAddFrame()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Ajouter une image.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si l’inspecteur de scénarios comprend des barres
d’animation ou des comportements.
dreamweaver.timelineInspector.canAddKeyFrame()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Ajouter une image-clé.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si l’élément sélectionné dans l’inspecteur de scénarios
fait partie d’une barre d’animation.
dreamweaver.timelineInspector.canChangeObject()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Modifier l’objet.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si l’élément sélectionné dans l’inspecteur de scénarios
fait partie d’une barre d’animation.
API JavaScript de Dreamweaver
189
000ExtendingDWU.book Page 190 Thursday, June 8, 2000 3:38 PM
dreamweaver.timelineInspector.canRemoveBehavior()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer le
comportement.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la sélection dans l’inspecteur de comportements est
un comportement.
dreamweaver.timelineInspector.canRemoveFrame()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer l’image.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si l’inspecteur de scénarios comprend des barres
d’animation ou des comportements.
dreamweaver.timelineInspector.canRemoveKeyFrame()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer l’image-clé.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si le cadre en cours dans l’inspecteur de
comportements est une image-clé.
dreamweaver.timelineInspector.canRemoveObject()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer l’objet.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si l’inspecteur de scénarios comporte des barres
d’animation.
site.canAddLink()
Disponibilité
190
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Lier au [ fichier existant |
nouveau fichier ].
Arguments
Aucun.
Chapitre 3
000ExtendingDWU.book Page 191 Thursday, June 8, 2000 3:38 PM
Renvoie
Valeur booléenne indiquant que le document sélectionné dans la carte du site est
un fichier HTML.
site.canChangeLink()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Modifier le lien.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant qu’un fichier HTML ou Flash est lié au fichier
sélectionné dans la carte du site.
site.canCheckIn()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Archiver.
Arguments
siteOrURL
L’argument doit être soit le mot-clé "site", indiquant que la fonction doit agir sur
l’élément sélectionné dans la fenêtre Site, soit l’URL d’un fichier.
Renvoie
Valeur booléenne indiquant si toutes les conditions suivantes sont vraies :
un site distant a été défini ;
dans le cas où une fenêtre de document est active, le fichier a été enregistré sur
un site local ou, dans le cas où la fenêtre Site est active, un ou plusieurs fichiers
ou dossiers sont sélectionnés ;
L’option archivage/extraction est activée.
site.canCheckOut()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Extraire sur le ou les
fichiers spécifiés.
Arguments
siteOrURL
L’argument doit être soit le mot-clé "site", indiquant que la fonction doit agir sur
l’élément sélectionné dans la fenêtre Site, soit l’URL d’un fichier.
Renvoie
Valeur booléenne indiquant si toutes les conditions suivantes sont vraies :
un site distant a été défini ;
dans le cas où une fenêtre de document est active, le fichier appartient à un site
local et il n’est pas déjà extrait, ou, dans le cas où la fenêtre Site est active,
plusieurs fichiers ou dossiers sont sélectionnés et au moins un des fichiers
sélectionnés n’a pas déjà été extrait ;
API JavaScript de Dreamweaver
191
000ExtendingDWU.book Page 192 Thursday, June 8, 2000 3:38 PM
l’option archivage/extraction est activée.
site.canConnect()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut se connecter au site distant.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si le site distant en cours est un site FTP.
site.canFindLinkSource()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Rechercher la source du
lien.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant que le lien sélectionné dans la carte du site n’est pas la
page d’accueil.
site.canGet()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Acquérir.
Arguments
siteOrURL
L’argument doit être soit le mot-clé "site", indiquant que la fonction doit agir sur
l’élément sélectionné dans la fenêtre Site, soit l’URL d’un fichier.
Renvoie
Si l’argument est "site", valeur booléenne indiquant si un ou plusieurs fichiers ou
dossiers sont sélectionnés dans la fenêtre Site et si un site distant a été défini. Si
l’argument est une URL, valeur booléenne indiquant si le document appartient à
un site pour lequel un site distant a été défini.
site.canLocateInSite()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Retrouver sur le site local
ou Retrouver sur le site distant (en fonction de l’argument)
Arguments
localOrRemote, siteOrURL
Le premier argument doit être "local" ou "remote".
Le second argument doit être soit le mot-clé "site", indiquant que la fonction
doit agir sur l’élément sélectionné dans la fenêtre Site, soit l’URL d’un fichier.
192
Chapitre 3
000ExtendingDWU.book Page 193 Thursday, June 8, 2000 3:38 PM
Renvoie
L’une des valeurs suivantes :
Si le second argument est "site", valeur booléenne indiquant si les deux volets
contiennent des fichiers de site (pas la carte du site) et si la sélection se trouve
dans le volet opposé à l’argument.
Si le premier argument est "local" et le second une URL, valeur booléenne
indiquant si le document appartient à un site.
Si le premier argument est "remote" et le second une URL, valeur booléenne
indiquant si le document appartient à un site pour lequel un site local a été
défini et, si le type de serveur est Local/Réseau, si le lecteur est monté.
site.canMakeEditable()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Désactiver le mode Lecture
seule.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si un ou plusieurs des fichiers sélectionnés sont
verrouillés.
site.canMakeNewFileOrFolder()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Nouveau fichier ou Nouveau
dossier dans la fenêtre Site.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si des fichiers sont visibles dans le volet sélectionné de
la fenêtre Site.
site.canOpen()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut ouvrir les fichiers ou les dossiers actuellement
sélectionnés dans la fenêtre Site.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si des fichiers ou des dossiers sont sélectionnés dans la
fenêtre Site.
site.canPut()
Disponibilité
3.0
API JavaScript de Dreamweaver
193
000ExtendingDWU.book Page 194 Thursday, June 8, 2000 3:38 PM
Description
Détermine si Dreamweaver peut effectuer une opération Placer.
Arguments
siteOrURL
L’argument doit être soit le mot-clé "site", indiquant que la fonction doit agir sur
l’élément sélectionné dans la fenêtre Site, soit l’URL d’un fichier.
Renvoie
Si l’argument est "site", valeur booléenne indiquant si des fichiers ou des dossiers
sont sélectionnés dans la fenêtre Site et si un site distant a été défini. Si l’argument
est une URL, valeur booléenne indiquant si le document appartient à un site pour
lequel un site distant a été défini.
site.canRecreateCache()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Recréer le cache du site.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si l’option Utiliser le cache pour accélérer les mises à
jour des liens est activée pour le site en cours.
site.canRefresh()
Disponibilité
3.0
Description
Vérifie si Dreamweaver peut effectuer une opération Actualiser [local | distant].
Arguments
localOrRemote
L’argument doit être "local" ou "remote".
Renvoie
TRUE si localOrRemote est "local" ; sinon, valeur booléenne indiquant si un site
distant a été défini.
site.canRemoveLink()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Supprimer le lien.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant qu’un fichier HTML ou Flash est lié au fichier
sélectionné dans la carte du site.
site.canSetLayout()
Disponibilité
194
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Mise en forme.
Arguments
Aucun.
Chapitre 3
000ExtendingDWU.book Page 195 Thursday, June 8, 2000 3:38 PM
Renvoie
Valeur booléenne indiquant si la carte du site est visible.
site.canSelectNewer()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Sélectionner [distants |
locaux] plus récents.
Arguments
localOrRemote
L’argument doit être "local" ou "remote".
Renvoie
Valeur booléenne indiquant si le document appartient à un site pour lequel un site
distant a été défini.
site.canShowPageTitles()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Afficher les titres de
page.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si la carte du site est visible.
site.canSynchronize()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Synchroniser.
Arguments
Aucun.
Renvoie
Valeur booléenne indiquant si un site distant a été défini.
site.canUndoCheckOut()
Disponibilité
3.0
Description
Détermine si Dreamweaver peut effectuer une opération Annuler extraction.
Arguments
siteOrURL
L’argument doit être soit le mot-clé "site", indiquant que la fonction doit agir sur
l’élément sélectionné dans la fenêtre Site, soit l’URL d’un fichier.
Renvoie
Valeur booléenne indiquant si le fichier spécifié ou l’un des fichiers sélectionnés,
au moins, a été extrait (par n’importe quel utilisateur).
API JavaScript de Dreamweaver
195
000ExtendingDWU.book Page 196 Thursday, June 8, 2000 3:38 PM
site.canViewAsRoot()
Disponibilité
Description
Détermine si Dreamweaver peut effectuer une opération Afficher comme racine.
Arguments
Aucun.
Renvoie
196
3.0
Chapitre 3
Valeur booléenne indiquant si le fichier spécifié est un fichier HTML ou Flash.
000ExtendingDWU.book Page 197 Thursday, June 8, 2000 3:38 PM
4
CHAPITRE 4
API d’E/S de fichiers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dreamweaver 3 est désormais livré avec une bibliothèque C appelée DWFile qui
donne aux auteurs d’objets, de commandes, de comportements, de traducteurs de
données et d’inspecteurs de propriétés la possibilité de lire et d’écrire des fichiers
sur le système de fichiers local. Ce chapitre décrit l’API d’entrée/sortie de fichiers
et son utilisation.
Pour obtenir des informations générales sur la façon dont les bibliothèques C
interagissent avec l’interpréteur JavaScript dans Dreamweaver, voir
« Extensions C » à la page 237.
Vérification de l’installation de DWfile
Pour que l’accès aux fonctions de la bibliothèque DWfile soit possible, cette
bibliothèque doit se trouver dans le dossier Configuration/JSExtensions et être
chargée par Dreamweaver. Du fait que DWfile n’était pas fourni avec
Dreamweaver 2 (DWfile était disponible sous forme d’un téléchargement séparé
que l’utilisateur devait installer), il est préférable de vérifier que cette bibliothèque
est disponible avant d’appeler l’une de ses fonctions. Pour ce faire, vérifiez le code
typeof(DWfile). Si DWfile n’existe pas, typeof(DWfile) renvoie undefined. Par exemple,
si vous utilisez DWfile dans le contexte d’une commande, vous pouvez vérifier si
DWfile fait partie de la fonction canAcceptCommand() :
// Returns TRUE if typeof(DWfile) is not undefined, FALSE otherwise.
function canAcceptCommand(){
return (typeof(DWfile) != "undefined");
}
197
000ExtendingDWU.book Page 198 Thursday, June 8, 2000 3:38 PM
API d’E/S de fichiers
Toutes les fonctions de l’API d’E/S de fichiers sont des méthodes associées à l’objet
DWfile. Les arguments facultatifs sont entourés d’accolades ({ }). Les fonctions
ajoutées à Dreamweaver 3 ont une disponibilité de 3.0. Les fonctions ayant une
disponibilité de 2.0 sont celles qui étaient incluses dans la version de DWfile
fournie sous forme de téléchargement pour Dreamweaver 2 à partir du site Web
Macromedia. Il est possible que cette version de DWfile ait été installée avec
certains objets de tiers.
DWfile.copy()
Disponibilité
3.0
Description
Copie le fichier spécifié vers l’URL spécifiée.
Arguments
originalURL, copyURL
Le premier argument est le fichier que vous souhaitez copier, exprimé sous la
forme d’une URL de type file://.
Le deuxième argument est l’emplacement dans lequel le fichier copié doit être
enregistré, exprimé sous la forme d’une URL de type file://.
si la copie a réussi, sinon FALSE.
Renvoie
TRUE
Exemple
Le code suivant copie un fichier appelé myconfig.cfg vers myconfig_backup.cfg.
var fileURL = "file:///c|/Config/myconfig.cfg";
var newURL ="file:///c|/Config/myconfig_backup.cfg";
DWfile.copy(fileURL, newURL);
DWfile.createFolder()
Disponibilité
2.0
Description
Crée un dossier (répertoire) à l’emplacement spécifié.
Arguments
folderURL
L’argument est l’emplacement du dossier que vous souhaitez créer, exprimé sous la
forme d’une URL de type file://.
si le dossier a été créé avec succès, sinon FALSE.
Renvoie
TRUE
Exemple
Le code suivant tente de créer un dossier nommé tempFolder à la racine du lecteur
C et affiche un message d’avertissement indiquant si l’opération a réussi.
var folderURL = "file:///c|/tempFolder";
if (DWfile.createFolder(folderURL)){
alert("Created " + folderURL);
}else{
alert("Unable to create " + folderURL);
}
198
Chapitre 4
000ExtendingDWU.book Page 199 Thursday, June 8, 2000 3:38 PM
DWfile.exists()
Disponibilité
2.0
Description
Vérifie l’existence du fichier spécifié.
Arguments
fileURL
L’argument est le fichier que vous recherchez, exprimé sous la forme d’une URL
de type file://.
si le fichier existe, sinon FALSE.
Renvoie
TRUE
Exemple
Le code suivant recherche un fichier nommé mydata.txt et affiche un message
d’avertissement indiquant à l’utilisateur si le fichier existe ou non.
var fileURL = "file:///c|/temp/mydata.txt";
if (DWfile.exists(fileURL)){
alert( fileURL + " exists!");
}else{
alert( fileURL + " does not exist.");
}
DWfile.getAttributes()
Disponibilité
2.0
Description
Obtient les attributs du fichier ou dossier spécifié.
Arguments
fileURL
L’argument est le fichier ou le dossier dont vous souhaitez obtenir les attributs,
exprimé sous la forme d’une URL de type file://.
Renvoie
Chaîne représentant les attributs du fichier ou dossier spécifié, ou NULL si le fichier
ou dossier n’existe pas. Les caractères de la chaîne représentent les attributs de la
façon suivante :
R signifie lecture seule.
D signifie dossier (répertoire).
H signifie masqué.
S indique un fichier ou dossier système.
Exemple
Le code suivant extrait les attributs du fichier mydata.txt et il affiche un message
d’avertissement si le fichier est en lecture seule.
var URL = "file:///c|/temp/mydata.txt";
var str = DWfile.getAttributes(URL);
if (str && (str.indexOf("R") != -1)){
alert(URL + " is read only!");
}
API d’E/S de fichiers
199
000ExtendingDWU.book Page 200 Thursday, June 8, 2000 3:38 PM
DWfile.getModificationDate()
Disponibilité
2.0
Description
Renvoie l’heure à laquelle le fichier a été modifié pour la dernière fois.
Arguments
fileURL
L’argument est le fichier dont vous recherchez l’heure de dernière modification,
exprimé sous la forme d’une URL de type file://.
Renvoie
Chaîne contenant un nombre hexadécimal qui représente le nombre d’unités de
temps écoulées depuis une base de temps. La signification exacte des unités de
temps et de la base de temps dépend de la plate-forme ; dans Windows, par
exemple, une unité de temps est égale à 100 ns et la base de temps est le 1er janvier
1600.
Exemple
Du fait que la valeur renvoyée par cette fonction n’est pas une date et une heure
identifiables (et parce qu’elle dépend de la plate-forme), il est utile d’appeler la
fonction deux fois et de comparer les valeurs renvoyées. Par exemple, le code
suivant renvoie les dates de modification de file1.txt et file2.txt et il affiche un
message d’avertissement indiquant quel fichier est le plus récent.
var file1 = "file:///c|/temp/file1.txt";
var file2 = "file:///c|/temp/file2.txt";
var time1 = DWfile.getModificationDate(file1);
var time2 = DWfile.getModificationDate(file2);
if (time1 == time2){
alert("file1 and file2 were saved at the same time");
}else if (time1 < time2){
alert("file1 older than file2");
}else{
alert("file1 is newer than file2");
}
DWfile.listFolder()
Disponibilité
2.0
Description
Obtient une liste du contenu du dossier spécifié.
Arguments
folderURL, {constraint}
Le premier argument est le dossier pour lequel vous souhaitez obtenir une liste
de contenu, exprimé sous la forme d’une URL de type file://, plus un masque
de fichier à caractères génériques facultatif. Les caractères génériques valides
sont * (correspond à 1 ou plusieurs caractères) et ? (correspond à un seul
caractère).
Le deuxième argument, s’il est fourni, doit être soit "files" (renvoyer uniquement
les fichiers), soit "directories" (renvoyer uniquement les répertoires). Si cet
argument est omis, la fonction renvoie à la fois des fichiers et des répertoires.
Renvoie
200
Chapitre 4
Tableau de chaînes représentant le contenu du dossier.
000ExtendingDWU.book Page 201 Thursday, June 8, 2000 3:38 PM
Exemple
Le code suivant obtient une liste de tous les fichiers texte (.txt) du dossier temp et
affiche la liste dans un message d’avertissement.
var folderURL = "file:///c|/temp";
var fileMask = "*.txt";
var list = listFolder(folderURL + "/" + fileMask, "files");
if (list){
alert(folderURL + " contains: " + list.join("\n"));
}
DWfile.read()
Disponibilité
2.0
Description
Lit le contenu du fichier spécifié dans une chaîne.
Arguments
fileURL
L’argument est le fichier que vous souhaitez lire, exprimé sous la forme d’une URL
de type file://.
Renvoie
Chaîne comprenant le contenu du fichier, ou NULL en cas d’échec de la lecture.
Exemple
Le code suivant lit le fichier mydata.txt et, s’il réussit, il affiche un message
d’avertissement renfermant le contenu du fichier.
var fileURL = "file:///c|/temp/mydata.txt";
var str = DWfile.read( fileURL);
if (str){
alert( fileURL + " contains: " + str);
}
DWfile.remove()
Disponibilité
Description
3.0
Déplace le fichier spécifié dans la Corbeille.
Remarque : Windows affiche une boîte de dialogue de confirmation si le fichier est en
lecture seule.
Arguments
fileURL
L’argument est le fichier que vous souhaitez supprimer, exprimé sous la forme
d’une URL de type file://.
Renvoie
TRUE
si l’opération a réussi, sinon FALSE.
API d’E/S de fichiers
201
000ExtendingDWU.book Page 202 Thursday, June 8, 2000 3:38 PM
DWfile.write()
Disponibilité
2.0
Description
Ecrit la chaîne spécifiée dans le fichier spécifié. Si le fichier spécifié n’existe pas
encore, il est créé.
Arguments
fileURL, text, {mode}
Le premier argument est le fichier dans lequel vous écrivez, exprimé sous la
forme d’une URL de type file://.
Le deuxième argument est la chaîne qui doit être écrite.
Le troisième argument, s’il est fourni, doit être "append". Si cet argument est
omis, le contenu du fichier est écrasé par la chaîne.
si l’écriture de la chaîne dans le fichier a réussi, sinon FALSE.
Renvoie
TRUE
Exemple
Le code suivant tente d’écrire la chaîne "xxx" dans le fichier mydata.txt et il affiche
un message d’avertissement si l’écriture a réussi. Il essaie alors d’ajouter la chaîne
"aaa" au fichier et il affiche un deuxième message d’avertissement si l’écriture a
réussi. Après l’exécution de ce script, le fichier mydata.txt contient le texte xxxaaa
et rien d’autre.
var fileURL = "file:///c|/temp/mydata.txt";
if (DWfile.write(fileURL, "xxx")){
alert("Wrote xxx to " + fileURL);
}
if (DWfile.write(fileURL, "aaa", "append")){
alert("Appended aaa to " + fileURL);
}
202
Chapitre 4
000ExtendingDWU.book Page 203 Thursday, June 8, 2000 3:38 PM
5
CHAPITRE 5
API Design Notes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dreamweaver 3 et Fireworks 3 offrent aux créateurs de sites Web et aux
développeurs un nouveau moyen de stocker et de récupérer des informations
complémentaires sur les documents (telles que des commentaires de révision, des
notes de modification ou le fichier source d’un document GIF ou JPEG) dans des
fichiers appelés Design Notes.
MMNotes est une bibliothèque C partagée qui permet aux auteurs d’extensions
de lire et d’écrire dans les fichiers Design Notes. A l’instar de la bibliothèque
partagée DWfile, MMNotes possède une API JavaScript qui permet d’appeler les
fonctions de la bibliothèque à partir d’objets, de commandes, de comportements,
de palettes flottantes, d’inspecteurs de propriétés et de traducteurs de données.
La bibliothèque MMNotes se distingue par le fait qu’elle possède également une
API C permettant à d’autres applications de lire et d’écrire dans les fichiers Design
Notes. La bibliothèque partagée MMNotes peut être utilisée indépendamment de
Dreamweaver, que Dreamweaver soit installé ou non.
Pour plus d’informations sur l’utilisation de la fonctionnalité Design Notes dans
Dreamweaver, voir le manuel Utilisation de Dreamweaver.
Fonctionnement de Design Notes
Chaque fichier Design Notes stocke des informations relatives à un seul
document. Si un ou plusieurs documents d’un répertoire sont associés à un fichier
Design Notes, Dreamweaver crée un sous-répertoire _notes dans ce répertoire
pour y stocker les fichiers Design Notes. Le dossier _notes et les fichiers Design
Notes qu’il contient ne sont pas visibles dans la fenêtre Site, mais ils s’affichent
dans le Finder Macintosh ou dans l’Explorateur Windows. Un nom de fichier
Design Notes est composé du nom du fichier principal suivi de l’extension .mno.
Par exemple, le fichier Design Notes associé à avocado8.gif est avocado8.gif.mno.
203
000ExtendingDWU.book Page 204 Thursday, June 8, 2000 3:38 PM
Les fichiers Design Notes sont des fichiers XML stockant des informations sous la
forme d’une série de paires clé/valeur. La clé décrit le type des informations
stockées, et la valeur représente les informations elles-mêmes. Les clés sont limitées
à 64 caractères.
Le fichier Design Notes associé au fichier foghorn.gif pourrait ressembler à ce qui
suit :
<?xml version="1.0" encoding="iso-8859-1" ?>
<info>
<infoitem key="FW_source" value="file:///C|sites/dreamcentral/images/sourceFiles/
foghorn.png" />
<infoitem key="Author" value="Heidi B." />
<infoitem key="Status" value="Final draft, approved by Jay L." />
</info>
API JavaScript Design Notes
Toutes les fonctions de l’API JavaScript Design Notes sont des méthodes associées
à l’objet MMNotes. Les arguments facultatifs sont entourés d’accolades ({ }).
MMNotes.open()
Description
Ouvre le fichier Design Notes associé au fichier spécifié, ou crée un fichier Design
Notes s’il n’en existe pas encore un.
Arguments
filePath, {bForceCreate}
Le premier argument est le chemin du fichier principal auquel le fichier Design
Notes est associé, exprimé sous la forme d’une URL de type file://.
Le deuxième argument est une valeur booléenne indiquant si la Note doit être
créée même si la fonctionnalité Design Notes est désactivée pour le site ou si
filePath n’est associé à aucun site.
Renvoie
L’identificateur du fichier Design Notes, ou zéro (0) si le fichier n’a pas été ouvert
ni créé.
Exemple
Voir la section « MMNotes.set() » à la page 205.
MMNotes.close()
Description
Ferme le fichier Design Notes spécifié et enregistre les modifications éventuelles.
Si toutes les paires clé/valeur ont été supprimées, Dreamweaver supprime le fichier
Design Notes.
Arguments
fileHandle
L’argument est l’identificateur de fichier renvoyé par MMNotes.open().
204
Renvoie
Aucune.
Exemple
Voir la section « MMNotes.set() » à la page 205.
Chapitre 5
000ExtendingDWU.book Page 205 Thursday, June 8, 2000 3:38 PM
MMNotes.set()
Description
Crée ou met à jour une paire clé/valeur dans un fichier Design Notes.
Arguments
fileHandle, keyName, valueString
Le premier argument est l’identificateur de fichier renvoyé par MMNotes.open().
Le deuxième argument est une chaîne contenant le nom de la clé.
Le troisième argument est une chaîne contenant la valeur.
Renvoie
Valeur booléenne indiquant si l’opération a réussi.
Exemple
Le code suivant ouvre le fichier Design Notes associé à un fichier situé sur le site
dreamcentral appelé peakhike99/index.html, ajoute une nouvelle paire clé/valeur,
modifie la valeur d’une clé existante, puis ferme le fichier Note.
var noteHandle = MMNotes.open(’file:///c|sites/dreamcentral/
peakhike99/index.html’,TRUE);
MMNotes.set(noteHandle,"Author","M. G. Miller");
MMNotes.set(noteHandle,"Last Changed","August 28, 1999");
MMNotes.close(noteHandle);
MMNotes.remove()
Description
Supprime la clé spécifiée (et sa valeur) du fichier Design Notes indiqué.
Arguments
fileHandle, keyName
Le premier argument est l’identificateur de fichier renvoyé par MMNotes.open().
Le deuxième argument est une chaîne contenant le nom de la clé à supprimer.
Renvoie
Valeur booléenne indiquant si l’opération a réussi.
MMNotes.get()
Description
Obtient la valeur de la clé spécifiée dans le fichier Design Notes indiqué.
Arguments
fileHandle, keyName
Le premier argument est l’identificateur de fichier renvoyé par MMNotes.open().
Le deuxième argument est une chaîne contenant le nom de la clé.
Renvoie
Chaîne contenant la valeur de la clé.
Exemple
Voir la section « MMNotes.getKeys() » à la page 206.
MMNotes.getKeyCount()
Description
Obtient le nombre de paires clé/valeur du fichier Design Notes spécifié.
Arguments
fileHandle
L’argument est l’identificateur de fichier renvoyé par MMNotes.open().
API Design Notes
205
000ExtendingDWU.book Page 206 Thursday, June 8, 2000 3:38 PM
Renvoie
Un entier représentant le nombre de paires clé/valeur du fichier Design Notes
spécifié.
MMNotes.getKeys()
Description
Obtient une liste de toutes les clés d’un fichier Design Notes.
Arguments
fileHandle
L’argument est l’identificateur de fichier renvoyé par MMNotes.open().
Renvoie
Tableau de chaînes dont chaque chaîne contient le nom d’une clé.
Exemple
Le code suivant pourrait être utilisé dans une palette flottante personnalisée afin
d’afficher les informations Design Notes relatives au document actif :
var noteHandle = MMNotes.open(dw.getDocumentDOM().URL);
var theKeys = MMNotes.getKeys(noteHandle);
var noteString = "";
var theValue = "";
for (var i=0; i < theKeys.length; i++){
theValue = MMNotes.get(noteHandle,theKeys[i]);
noteString += theKeys[i] + " = " theValue + "\n";
}
document.theForm.bigTextField.value = noteString;
MMNotes.getSiteRootForFile()
Description
Détermine la racine du site pour le fichier Design Notes spécifié.
Arguments
fileURL
L’argument est le chemin d’un fichier local, exprimé sous la forme d’une URL de
type file://.
Renvoie
Une chaîne contenant le chemin du répertoire racine local du site, exprimé sous la
forme d’une URL de type file://, ou une chaîne vide si Dreamweaver n’est pas
installé ou si le fichier Design Notes se trouve en dehors de tout site.
MMNotes.getVersionNum()
Description
Obtient le numéro de version de la bibliothèque partagée MMNotes.
Arguments
Aucun.
Renvoie
Chaîne contenant le numéro de version.
MMNotes.getVersionName()
206
Description
Obtient le nom de version de la bibliothèque partagée MMNotes indiquant
l’application qui l’a implémentée.
Arguments
Aucun.
Chapitre 5
000ExtendingDWU.book Page 207 Thursday, June 8, 2000 3:38 PM
Renvoie
Une chaîne contenant le nom de l’application qui a implémenté la bibliothèque
partagée MMNotes.
Exemple
L’appel de la fonction MMNotes.getVersionName() à partir d’une commande, d’un
objet, d’un inspecteur de propriétés, d’une palette flottante ou d’un traducteur de
données Dreamweaver renvoie "Dreamweaver". L’appel de la fonction
MMNotes.getVersionName() à partir de Fireworks renvoie également la valeur
"Dreamweaver" étant donné que Fireworks utilise la même version de la
bibliothèque (celle qui a été créée par l’équipe technique de Dreamweaver).
MMNotes.filePathToLocalURL()
Description
Convertit le chemin d’accès du lecteur local spécifié en une URL de type file://.
Arguments
drivePath
L’argument est une chaîne contenant le chemin d’accès complet du lecteur.
Renvoie
Une chaîne contenant l’URL de type file:// du fichier spécifié.
Exemple
Un appel à la fonction MMNotes.filePathToLocalURL(’C:/sites/webdev/index.htm’)
renvoie "file:///c|sites/webdev/index.htm".
MMNotes.localURLToFilePath()
Description
Convertit l’URL de type file:// spécifiée en un chemin d’accès du lecteur local.
Arguments
fileURL
L’argument est le chemin d’un fichier local, exprimé sous la forme d’une URL de
type file://.
Renvoie
Une chaîne contenant le chemin d’accès du lecteur local pour le fichier spécifié.
Exemple
Un appel à la fonction MMNotes.localURLToFilePath(’file:///MacintoshHD/images/
moon.gif’) renvoie "MacintoshHD:images:moon.gif".
API C Design Notes
En plus de l’API JavaScript, la bibliothèque partagée MMNotes affiche une API C
permettant aux autres applications de créer des fichiers Design Notes. Il n’est pas
nécessaire d’appeler les fonctions C directement si vous utilisez la bibliothèque
partagée MMNotes dans Dreamweaver ; les versions JavaScript de ces fonctions
les appellent pour vous.
Cette section contient une description de ces fonctions, de leurs arguments et des
valeurs qu’elles renvoient ; les définitions de toutes les fonctions et de tous les
types de données sont fournies dans le fichier MMInfo.h du dossier Extending/
c_files dans le dossier de l’application Dreamweaver.
Les arguments facultatifs sont entourés d’accolades ({ }).
API Design Notes
207
000ExtendingDWU.book Page 208 Thursday, June 8, 2000 3:38 PM
FileHandle OpenNotesFile()
Description
Ouvre le fichier Design Notes associé au fichier spécifié, ou crée un fichier Design
Notes s’il n’en existe pas encore un.
Arguments
const char* localFileURL, {BOOL bForceCreate}
Le premier argument est une chaîne contenant le chemin du fichier principal
auquel le fichier Design Notes est associé, exprimé sous la forme d’une URL de
type file://.
Le deuxième argument est une valeur booléenne indiquant si le fichier Design
Notes doit être créé même si la fonctionnalité Design Notes est désactivée pour
le site ou si filePath n’est associé à aucun site.
void CloseNotesFile()
Description
Ferme le fichier Design Notes spécifié et enregistre les modifications éventuelles.
Si toutes les paires clé/valeur ont été supprimées de la Note, Dreamweaver
supprime cette dernière.
Arguments
FileHandle noteHandle
L’argument est l’identificateur de fichier renvoyé par OpenNotesFile().
Renvoie
Aucune.
BOOL SetNote()
Description
Crée ou met à jour une paire clé/valeur dans un fichier Design Notes.
Arguments
FileHandle noteHandle, const char keyName[64], const char* value
Le premier argument est l’identificateur de fichier renvoyé par OpenNotesFile().
Le deuxième argument est une chaîne contenant le nom de la clé.
Le troisième argument est une chaîne contenant la valeur.
Renvoie
208
Chapitre 5
Valeur booléenne indiquant si l’opération a réussi.
000ExtendingDWU.book Page 209 Thursday, June 8, 2000 3:38 PM
BOOL RemoveNote()
Description
Supprime la clé spécifiée (et sa valeur) du fichier Design Notes indiqué.
Arguments
FileHandle noteHandle, const char keyName[64]
Le premier argument est l’identificateur de fichier renvoyé par OpenNotesFile().
Le deuxième argument est une chaîne contenant le nom de la clé à supprimer.
Renvoie
Valeur booléenne indiquant si l’opération a réussi.
int GetNoteLength()
Description
Obtient la longueur de la valeur associée à la clé spécifiée.
Arguments
FileHandle noteHandle, const char keyName[64]
Le premier argument est l’identificateur de fichier renvoyé par OpenNotesFile().
Le deuxième argument est une chaîne contenant le nom de la clé.
Renvoie
Un entier représentant la longueur de la valeur.
Exemple
Voir « BOOL GetNote() » à la page 209
BOOL GetNote()
Description
Obtient la valeur de la clé spécifiée dans le fichier Design Notes indiqué.
Arguments
FileHandle noteHandle, const char keyName[64], char* valueBuf, int valueBufLength
Le premier argument est l’identificateur de fichier renvoyé par OpenNotesFile().
Le deuxième argument est une chaîne contenant le nom de la clé.
Le troisième argument est la zone de mémoire tampon où la valeur doit être
stockée.
Le quatrième argument est l’entier renvoyé par
GetNoteLength(noteHandle,keyName),
indiquant la longueur maximale de la
mémoire tampon des valeurs.
Renvoie
Une valeur booléenne indiquant si l’opération a réussi, et stockage de la valeur de
la clé dans valueBuf.
Exemple
Le code suivant obtient la valeur de la clé comments dans le fichier Design Notes
associé à welcome.html :
FileHandle noteHandle = OpenNotesFile(“file:///c|sites/avocado8/iwjs/welcome.html”);
int valueLength = GetNotesLength( noteHandle, “comments”);
char* valueBuffer = new char[valueLength + 1]
GetNote(noteHandle, “comments”, valueBuffer, valueLength + 1);
printf("Comments: %s",valueBuffer);
CloseNotesFile(noteHandle);
API Design Notes
209
000ExtendingDWU.book Page 210 Thursday, June 8, 2000 3:38 PM
int GetNotesKeyCount()
Description
Obtient le nombre de paires clé/valeur du fichier Design Notes spécifié.
Arguments
FileHandle noteHandle
L’argument est l’identificateur de fichier renvoyé par OpenNotesFile().
Renvoie
Un entier représentant le nombre de paires clé/valeur du fichier Design Notes
spécifié.
BOOL GetNotesKeys()
Description
Obtient une liste de toutes les clés d’un fichier Design Notes.
Arguments
FileHandle noteHandle, char* keyBufArray[64], int keyArrayMaxLen
Le premier argument est l’identificateur de fichier renvoyé par OpenNotesFile().
Le deuxième argument est le tableau en mémoire tampon où les clés doivent
être stockées.
Le troisième argument est l’entier renvoyé par GetNotesKeyCount(noteHandle),
indiquant le nombre maximum d’éléments contenu dans le tableau en
mémoire tampon des clés.
Renvoie
Une valeur booléenne indiquant si l’opération a réussi, et stockage des noms de clé
dans keyBufArray.
Exemple
Le code suivant imprime les noms de clé et les valeurs de toutes les clés du fichier
Design Notes associé à welcome.html :
typedef char[64] InfoKey;
FileHandle noteHandle = OpenNotesFile(“file:///c|sites/avocado8/iwjs/welcome.html”);
if (noteHandle > 0){
int keyCount = GetNotesKeyCount(noteHandle);
if (keyCount <= 0)
return;
InfoKey* keys = new InfoKey[keyCount];
BOOL succeeded = GetNotesKeys(noteHandle, keys, keyCount);
if (succeeded){
for (int i=0; i < keyCount; i++){
printf(“Key is: %s\n", keys[i]);
printf("Value is: %s\n\n", GetNote(noteHandle, keys[i]);
}
delete keys;
}
CloseNotesFile(noteHandle);
210
Chapitre 5
000ExtendingDWU.book Page 211 Thursday, June 8, 2000 3:38 PM
BOOL GetSiteRootForFile()
Description
Détermine la racine du site pour le fichier Design Notes spécifié.
Arguments
char* filePath, char* siteRootBuf, int siteRootBufMaxLen, {InfoPrefs* infoPrefs}
Le premier argument est l’identificateur de fichier renvoyé par OpenNotesFile().
Le deuxième argument est la zone de mémoire tampon où la racine du site doit
être stockée.
Le troisième argument est la taille maximale de siteRootBuf.
Le quatrième argument est une référence à un struct dans lequel les préférences
du site doivent être stockées.
Renvoie
Une valeur booléenne indiquant si l’opération a réussi, et stockage de la racine du
site dans siteRootBuf. Si infoPrefs est spécifié, la fonction renvoie également les
préférences Design Notes pour le site. Le struct InfoPrefs possède deux variables :
bUseDesignNotes et bUploadDesignNotes, toutes deux de type BOOL.
BOOL GetVersionNum()
Description
Obtient le numéro de version de la bibliothèque partagée MMNotes.
Arguments
char* versionNumBuf, int versionNumBufMaxLen
Le premier argument est la zone de mémoire tampon où le numéro de version
doit être stocké.
Le deuxième argument est la taille maximale de versionNumBuf.
Renvoie
Une valeur booléenne indiquant si l’opération a réussi, et stockage du numéro de
version dans versionNumBuf.
BOOL GetVersionName()
Description
Obtient le nom de version de la bibliothèque partagée MMNotes indiquant
l’application qui l’a implémentée.
Arguments
char* versionNameBuf, int versionNameBufMaxLen
Le premier argument est la zone de mémoire tampon où le nom de version doit
être stocké.
Le deuxième argument est la taille maximale de versionNameBuf.
Renvoie
Une valeur booléenne indiquant si l’opération a réussi, et stockage du nom de
version dans versionNameBuf.
API Design Notes
211
000ExtendingDWU.book Page 212 Thursday, June 8, 2000 3:38 PM
BOOL FilePathToLocalURL()
Description
Convertit le chemin d’accès du lecteur local spécifié en une URL de type file://.
Arguments
const char* drivePath, char* localURLBuf, int localURLMaxLen
Le premier argument est une chaîne contenant le chemin d’accès complet du
lecteur.
Le deuxième argument est la zone de mémoire tampon où l’URL de type file://
doit être stockée.
Le troisième argument est la taille maximale de localURLBuf.
Renvoie
Une valeur booléenne indiquant si l’opération a réussi, et stockage de l’URL de
type file:// dans localURLBuf.
BOOL LocalURLToFilePath()
Description
Convertit l’URL de type file:// spécifiée en un chemin d’accès du lecteur local.
Arguments
const char* localURL, char* drivePathBuf, int drivePathMaxLen
Le premier argument est le chemin d’un fichier local, exprimé sous la forme
d’une URL de type file://.
Le deuxième argument est la zone de mémoire tampon où le chemin d’accès du
lecteur local doit être stocké.
Le troisième argument est la taille maximale de drivePathBuf.
Renvoie
212
Chapitre 5
Une valeur booléenne indiquant si l’opération a réussi, et stockage du chemin
d’accès du lecteur local dans drivePathBuf.
000ExtendingDWU.book Page 213 Thursday, June 8, 2000 3:38 PM
6
CHAPITRE 6
API d’intégration de Fireworks
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FWLaunch est une bibliothèque C partagée qui donne aux auteurs d’objets, de
commandes, de comportements et d’inspecteurs de propriétés la possibilité de
communiquer avec Fireworks. Ce chapitre décrit l’API d’intégration de Fireworks
et son utilisation. Pour obtenir des informations générales sur la façon dont les
bibliothèques C interagissent avec l’interpréteur JavaScript dans Dreamweaver,
voir « Extensions C » à la page 237.
API d’intégration de Fireworks
Toutes les fonctions de l’API d’intégration de Fireworks sont des méthodes associées
à l’objet FWLaunch. Les arguments facultatifs sont entourés d’accolades ({ }).
FWLaunch.bringDWToFront()
Disponibilité
Dreamweaver 3.0, Fireworks 3.0
Description
Fait passer Dreamweaver au premier plan.
Arguments
Aucun.
Renvoie
Aucune.
FWLaunch.bringFWToFront()
Disponibilité
Dreamweaver 3.0, Fireworks 3.0
Description
Fait passer Fireworks au premier plan s’il est en cours d’exécution.
Arguments
Aucun.
Renvoie
Aucune.
213
000ExtendingDWU.book Page 214 Thursday, June 8, 2000 3:38 PM
FWLaunch.execJsInFireworks()
Disponibilité
Dreamweaver 3.0, Fireworks 3.0
Description
Transmet la chaîne JavaScript spécifiée à Fireworks en vue de son exécution.
Arguments
javascriptOrFileURL
L’argument est soit une chaîne de JavaScript littéral, soit le chemin d’accès d’un
fichier .js ou .jsf, exprimé sous la forme d’une URL de type file://.
Renvoie
Un objet cookie si la chaîne JavaScript a été transmise avec succès, ou un code
d’erreur non nul indiquant que l’une des erreurs suivantes s’est produite :
1: Utilisation non valide ; l’argument javascriptOrFileURL a été spécifié comme
étant NULL ou sous forme d’une chaîne vide, ou le chemin d’accès du fichier .js
ou .jsf n’était pas valide.
2: Erreur d’E/S de fichier ; Fireworks ne peut pas créer de fichier réponse parce
que le disque est plein.
3: Erreur de notification de Dreamweaver ; l’utilisateur n’exécute pas une
version valide de Dreamweaver (3.0 ou ultérieure).
4: Erreur de lancement du traitement de Fireworks ; la fonction n’a pas lancé
une version valide de Fireworks (3.0 ou ultérieure).
5: L’utilisateur a annulé l’opération.
FWLaunch.getJsResponse()
Disponibilité
Dreamweaver 3.0, Fireworks 3.0
Description
Détermine si Fireworks est toujours en train d’exécuter le code JavaScript qui lui a
été transmis par la fonction FWLaunch.execJsInFireworks(), si l’exécution du script
s’est terminée avec succès, ou si une erreur s’est produite.
Arguments
progressTrackerCookie
L’argument est l’objet cookie renvoyé par FWLaunch.execJsInFireworks().
Renvoie
Une chaîne contenant le résultat du script passé à FWLaunch.execJsInFireworks() si
l’opération s’est terminée avec succès, NULL si Fireworks est toujours en train
d’exécuter le code JavaScript, ou un code d’erreur non nul indiquant que l’une des
erreurs suivantes s’est produite :
1: Utilisation non valide ; une erreur JavaScript s’est produite pendant que
Fireworks exécutait le script.
2: Erreur d’E/S de fichier ; Fireworks ne peut pas créer de fichier réponse parce
que le disque est plein.
3: Erreur de notification de Dreamweaver ; l’utilisateur n’exécute pas une
version valide de Dreamweaver (3.0 ou ultérieure).
214
Chapitre 6
000ExtendingDWU.book Page 215 Thursday, June 8, 2000 3:38 PM
4: Erreur de lancement du traitement de Fireworks ; la fonction n’a pas lancé
une version valide de Fireworks (3.0 ou ultérieure).
5: L’utilisateur a annulé l’opération.
Renvoie
Le code suivant transmet la chaîne "prompt(’Please enter your name:’)" à la fonction
FWLaunch.execJsInFireworks() , puis il vérifie le résultat :
var progressCookie = FWLaunch.execJsInFireworks("prompt(’Please enter your name:’)");
var doneFlag = false;
while (!doneFlag){
// check for completion every 1/2 second
setTimeout(’checkForCompletion()’,500);
}
function checkForCompletion(){
if (progressCookie != null) {
var response = FWLaunch.getJsResponse(progressCookie);
if (response != null) {
if (typeof(response) == "number") {
// error or user-cancel, time to close the window and let the user know we got an error
window.close();
alert("An error occurred.");
}else{
// got a valid response!
alert("Nice to meet you, " + response);
window.close();
}
doneFlag = true;
}
}
}
FWLaunch.mayLaunchFireworks()
Disponibilité
Dreamweaver 2.0, Fireworks 2.0
Description
Détermine s’il est possible de lancer une session d’optimisation de Fireworks.
Arguments
Aucun.
Renvoie
Une valeur booléenne indiquant si la plate-forme est Windows ou, s’il s’agit de
Macintosh, si une autre session d’optimisation de Fireworks n’est pas déjà en cours
d’exécution.
FWLaunch.optimizeInFireworks()
Disponibilité
Dreamweaver 2.0, Fireworks 2.0
Description
Lance une session d’optimisation de Fireworks pour l’image spécifiée.
Arguments
docURL, imageURL, {targetWidth}, {targetHeight}
API d’intégration de Fireworks
215
000ExtendingDWU.book Page 216 Thursday, June 8, 2000 3:38 PM
Le premier argument est le chemin du document actif, exprimé sous la forme
d’une URL de type file://.
Le deuxième argument est le chemin de l’image sélectionnée. S’il s’agit d’un
chemin relatif, il est relatif à docURL.
Le troisième argument, s’il est fourni, est la largeur par rapport à laquelle
l’image doit être redimensionnée.
Le quatrième argument, s’il est fourni, est la hauteur par rapport à laquelle
l’image doit être redimensionnée.
Renvoie
0 si une session d’optimisation de Fireworks a été lancée avec succès pour l’image
spécifiée ; sinon, un code d’erreur non nul indiquant que l’une des erreurs
suivantes s’est produite :
1: Utilisation non valide ; l’argument docURL, ou l’argument imageURL, ou les
deux, ont été spécifiés comme étant NULL ou sous forme d’une chaîne vide.
2: Erreur d’E/S de fichier ; Fireworks ne peut pas créer de fichier réponse parce
que le disque est plein.
3: Erreur de notification de Dreamweaver ; l’utilisateur n’exécute pas une
version valide de Dreamweaver (2.0 ou ultérieure).
4: Erreur de lancement du traitement de Fireworks ; la fonction n’a pas lancé
une version valide de Fireworks (2.0 ou ultérieure).
5: L’utilisateur a annulé l’opération.
FWLaunch.validateFireworks()
Disponibilité
Dreamweaver 2.0, Fireworks 2.0
Description
Recherche la version spécifiée de Fireworks sur le disque dur de l’utilisateur.
Arguments
{versionNumber}
L’argument est un nombre à virgule flottante supérieur ou égal à 2.0 ; il représente
la version de Fireworks qui doit être recherchée. Si cet argument n’est pas défini, il
prend par défaut la valeur 2.0.
Renvoie
Valeur booléenne indiquant si la version spécifiée de Fireworks a été trouvée.
Exemple
Le code suivant vérifie si Fireworks 3.0 est installé :
if (FWLaunch.validateFireworks(3.0)){
alert( "Fireworks 3.0 is installed.");
}else{
alert( "Fireworks 3.0 is not installed.");
}
216
Chapitre 6
000ExtendingDWU.book Page 217 Thursday, June 8, 2000 3:38 PM
Exemple simple d’intégration de Fireworks
La commande suivante demande à Fireworks d’inviter l’utilisateur à entrer son
nom, puis renvoie le nom à Dreamweaver.
<html>
<head>
<title>Prompt in Fireworks</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
function commandButtons(){
return new Array("Prompt", "promptInFireworks()", "Cancel", "readyToCancel()",
"Close","window.close()");
}
var gCancelClicked = false;
var gProgressTrackerCookie = null;
function readyToCancel() {
gCancelClicked = true;
}
function promptInFireworks() {
var isFireworks3 = FWLaunch.validateFireworks(3.0);
if (!isFireworks3) {
alert("You must have Fireworks 3.0 or later to use this command");
return;
}
// Tell Fireworks to execute the prompt() method.
gProgressTrackerCookie = FWLaunch.execJsInFireworks("prompt(’Please enter your
name:’)");
// null means it wasn’t launched, a number means an error code
if (gProgressTrackerCookie == null || typeof(gProgressTrackerCookie) == "number") {
window.close();
alert("an error occurred");
gProgressTrackerCookie = null;
} else {
// bring Fireworks to the front
FWLaunch.bringFWToFront();
// start the checking to see if Fireworks is done yet
checkOneMoreTime();
}
}
function checkOneMoreTime() {
// Call checkJsResponse() every 1/2 second to see if Fireworks is done yet
window.setTimeout("checkJsResponse();", 500);
}
API d’intégration de Fireworks
217
000ExtendingDWU.book Page 218 Thursday, June 8, 2000 3:38 PM
function checkJsResponse() {
var response = null;
// The user clicked the cancel button, close the window
if (gCancelClicked) {
window.close();
alert("cancel clicked");
} else {
// We’re still going, ask Fireworks how it’s doing
if (gProgressTrackerCookie != null)
response = FWLaunch.getJsResponse(gProgressTrackerCookie);
if (response == null) {
// still waiting for a response, call us again in 1/2 a second
checkOneMoreTime();
} else if (typeof(response) == "number") {
// if the response was a number, it means an error occurred
// the user cancelled in Fireworks
window.close();
alert("an error occurred.");
} else {
// got a valid response! This return value might not always be a
// useful one, since not all functions in Fireworks return a string,
// but we know this one does, so we can show the user what we got.
window.close();
FWLaunch.bringDWToFront(); // bring Dreamweaver to the front
alert("Nice to meet you, " + response + "!");
}
}
}
</script>
</head>
<body>
<form>
<table width="313" nowrap>
<tr>
<td>This command asks Fireworks to execute the prompt() function.
When you click Prompt, Fireworks comes forward and asks you to
enter a value into a dialog box. That value is then returned to
Dreamweaver and displayed in an alert.</td>
</tr>
</table>
</form>
</body>
</html>
218
Chapitre 6
000ExtendingDWU.book Page 219 Thursday, June 8, 2000 3:38 PM
7
CHAPITRE 7
API HTTP
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dans Dreamweaver 3, le fonctionnement des extensions n’est plus limité au
système de fichiers local. Dreamweaver offre désormais un mécanisme
d’acquisition d’informations depuis un serveur Web et d’envoi d’informations à
un serveur Web via le protocole HTTP (Hypertext Transfer Protocol). Ce chapitre
décrit l’API HTTP et son utilisation.
API HTTP
Toutes les fonctions de l’API HTTP sont des méthodes associées à l’objet MMHttp.
La plupart d’entre elles acceptent au moins une URL comme argument, et la
plupart renvoient un objet. Le port par défaut pour les arguments URL est 80 ;
pour spécifier un port différent, ajoutez deux points (:) et le numéro de port à la
suite de l’URL. Par exemple :
MMHttp.getText("http://www.myserver.com:8025");
Pour les fonctions qui renvoient un objet, cet objet possède deux propriétés :
statusCode et data.
statusCode
indique l’état de l’opération ; les valeurs possibles sont notamment :
200: Status OK (état OK)
400: Unintelligible request (requête incompréhensible)
404: Requested URL not found (URL demandée introuvable)
405: Server does not support requested method (le serveur ne prend pas en
charge la méthode demandée)
500: Unknown server error (erreur de serveur inconnue)
503: Server capacity reached (capacité du serveur atteinte)
219
000ExtendingDWU.book Page 220 Thursday, June 8, 2000 3:38 PM
Pour une liste complète des codes d’état pour votre serveur, consultez votre
fournisseur d’accès Internet ou votre administrateur système.
La valeur de la propriété data varie selon la fonction ; les valeurs possibles sont
spécifiées dans les listes des fonctions individuelles.
Les fonctions qui renvoient un objet ont également une version de rappel
(“callback”). Les fonctions de rappel permettent aux autres fonctions de s’exécuter
pendant que le serveur Web traite une requête HTTP. Elles sont utiles si vous
effectuez plusieurs requêtes HTTP à partir de Dreamweaver. La version de rappel
d’une fonction transmet directement son ID et sa valeur de renvoi à la fonction
spécifiée sous la forme de son premier argument.
Les arguments facultatifs sont entourés d’accolades ({ }).
MMHttp.clearTemp()
Description
Supprime tous les fichiers du dossier Configuration/Temp situé dans le dossier de
l’application Dreamweaver.
Arguments
Aucun.
Renvoie
Aucune.
Exemple
Le code suivant, lorsqu’il est enregistré dans un fichier du dossier Configuration/
Shutdown, supprime tous les fichiers du dossier Configuration/Temp lorsque
l’utilisateur quitte Dreamweaver:
<html>
<head>
<title>Clean Up Temp Files on Shutdown</title>
</head>
<body onLoad=”MMHttp.clearTemp()”>
</body>
</html>
MMHttp.getFile()
Description
Obtient le fichier situé à l’URL spécifiée et l’enregistre dans le dossier
Configuration/Temp du dossier de l’application Dreamweaver sur le disque dur de
l’utilisateur. Dreamweaver crée automatiquement des sous-dossiers émulant la
structure de répertoires du serveur ; par exemple, si le fichier spécifié se trouve à
l’URL http://www.dreamcentral.com/people/index.html, Dreamweaver stocke le
fichier index.html dans le dossier people du dossier www.dreamcentral.com.
Arguments
URL, {prompt}, {saveURL}, {titleBarLabel}
Le premier argument est une URL absolue sur un serveur Web ; si la partie
“http://” de l’URL n’est pas spécifiée, elle est supposée.
220
Chapitre 7
000ExtendingDWU.book Page 221 Thursday, June 8, 2000 3:38 PM
Le deuxième argument est une valeur booléenne spécifiant s’il faut inviter
l’utilisateur à enregistrer le fichier. Si saveURL est en dehors du dossier
Configuration/Temp, une valeur de prompt égale à FALSE n’est pas prise en
compte pour des raisons de sécurité.
Le troisième argument est l’emplacement sur le disque dur de l’utilisateur où le
fichier doit être enregistré, exprimé sous la forme d’une URL de type file://. Si
l’argument prompt a pour valeur TRUE ou si saveURL est en dehors du dossier
Configuration/Temp, l’utilisateur peut remplacer saveURL dans la boîte de
dialogue d’enregistrement.
Le quatrième argument est le libellé qui doit figurer dans la barre de titre de la
boîte de dialogue d’enregistrement.
Renvoie
Un objet représentant la réponse du serveur. La propriété data de cet objet est une
chaîne contenant l’emplacement où le fichier a été enregistré, exprimé sous la
forme d’une URL de type file://. Normalement, la propriété statusCode de l’objet
contient le code d’état envoyé par le serveur. Toutefois, si une erreur disque se
produit lors de l’enregistrement du fichier sur le lecteur local, la propriété
statusCode contient un entier représentant l’un des codes d’erreurs suivants en cas
d’échec de l’opération :
1: Unspecified error (erreur inconnue)
2: File not found (fichier introuvable)
3: Invalid path (chemin non valide)
4: Number of open files limit reached (la limite du nombre de fichiers ouverts
est atteinte)
5: Access denied (accès refusé)
6: Invalid file handle (identificateur de fichier non valide)
7: Cannot remove current working directory (impossible de supprimer le
répertoire de travail en cours)
8: No more directory entries (pas d’autre entrée de répertoire)
9: Error setting file pointer (erreur lors de la définition du pointeur de fichier)
10: Hardware error (erreur matérielle)
11: Sharing violation (violation de partage)
12: Lock violation (violation de verrouillage)
13: Disk full (disque plein)
14: End of file reached (fin du fichier atteinte)
API HTTP
221
000ExtendingDWU.book Page 222 Thursday, June 8, 2000 3:38 PM
Exemple
Le code suivant obtient un fichier HTML, enregistre tous les fichiers dans le
dossier Configuration/Temp, puis ouvre la copie locale du fichier HTML dans un
navigateur :
var httpReply = MMHttp.getFile("http://www.dreamcentral.com/people/profiles/scott.html",
false);
if (httpReply.statusCode == 200){
var saveLoc = httpReply.data;
dw.browseDocument(saveLoc);
}
MMHttp.getFileCallback()
Description
Obtient le fichier situé à l’URL spécifiée, l’enregistre dans le dossier
Configuration/Temp du dossier de l’application Dreamweaver sur le disque dur de
l’utilisateur, puis appelle la fonction spécifiée en lui transmettant le résultat obtenu
pour les variables requestID et reply. Lorsque le fichier est enregistré localement,
Dreamweaver crée automatiquement des sous-dossiers émulant la structure de
répertoires du serveur ; par exemple, si le fichier spécifié se trouve à l’URL http://
www.dreamcentral.com/people/index.html, Dreamweaver stocke le fichier
index.html dans le dossier people du dossier www.dreamcentral.com.
Arguments
callbackFunction, URL, {prompt}, {saveURL}, {titleBarLabel}
Le premier argument est le nom de la fonction JavaScript à appeler lorsque la
requête HTTP est terminée.
Le deuxième argument est une URL absolue sur un serveur Web ; si la partie
“http://” de l’URL n’est pas spécifiée, elle est supposée.
Le troisième argument est une valeur booléenne spécifiant s’il faut inviter
l’utilisateur à enregistrer le fichier. Si saveURL est en dehors du dossier
Configuration/Temp, une valeur de prompt égale à FALSE n’est pas prise en
compte pour des raisons de sécurité.
Le quatrième argument est l’emplacement sur le disque dur de l’utilisateur où le
fichier doit être enregistré, exprimé sous la forme d’une URL de type file://. Si
l’argument prompt a pour valeur TRUE ou si saveURL est en dehors du dossier
Configuration/Temp, l’utilisateur peut remplacer saveURL dans la boîte de
dialogue d’enregistrement.
Le cinquième argument est le libellé qui doit figurer dans la barre de titre de la
boîte de dialogue d’enregistrement.
Renvoie
222
Chapitre 7
Un objet représentant la réponse du serveur. La propriété data de cet objet est une
chaîne contenant l’emplacement où le fichier a été enregistré, exprimé sous la
forme d’une URL de type file://. Normalement, la propriété statusCode de l’objet
contient le code d’état envoyé par le serveur. Toutefois, si une erreur disque se
produit lors de l’enregistrement du fichier sur le lecteur local, la propriété
statusCode contient un entier représentant un code d’erreur. Voir
« MMHttp.getFile() » à la page 220 pour une liste des codes d’erreur possibles.
000ExtendingDWU.book Page 223 Thursday, June 8, 2000 3:38 PM
MMHttp.getText()
Description
Extrait le contenu du document situé à l’URL spécifiée.
Arguments
URL
L’argument est une URL absolue sur un serveur Web ; si la partie “http://” de
l’URL n’est pas spécifiée, elle est supposée.
Renvoie
Un objet représentant la réponse du serveur. La propriété data de cet objet est une
chaîne englobant le contenu du document.
Exemple
Le code suivant obtient le contenu d’un fichier situé sur un serveur Web et le place
dans un nouveau document Dreamweaver sans titre :
var httpReply = MMHttp.getText("http://www.dreamcentral.com/people/profiles/lori.html");
if (httpReply.statusCode == 200){
var newDoc = dw.createDocument();
newDoc.documentElement.outerHTML = httpReply.data;
}
MMHttp.getTextCallback()
Description
Extrait le contenu du document situé à l’URL spécifiée et le passe à la fonction
spécifiée.
Arguments
callbackFunc, URL
Le premier argument est le nom de la fonction JavaScript à appeler lorsque la
requête HTTP est terminée.
Le deuxième argument est une URL absolue sur un serveur Web ; si la partie
“http://” de l’URL n’est pas spécifiée, elle est supposée.
Renvoie
Un objet représentant la réponse du serveur. La propriété data de cet objet est une
chaîne englobant le contenu du document.
Exemple
Le code suivant renseigne un champ de formulaire avec le texte renvoyé par la
fonction MMHttp.GetTextCallback() ou affiche un message d’erreur si la fonction
renvoie une erreur :
var requestID = MMHttp.getTextCallback(“httpCallback”, “www.dreamcentral.com/
index.html”)
function httpCallback(requestID,reply) {
if (reply.statusCode == 200) {
document.theForm.docContents.value = reply.data;
}else{
alert("Request #: " + requestID + "returned the following error: ” + reply.statusCode);
}
}
API HTTP
223
000ExtendingDWU.book Page 224 Thursday, June 8, 2000 3:38 PM
MMHttp.postText()
Description
Exécute un envoi HTTP des données spécifiées à l’URL spécifiée. En règle
générale, les données associées à une opération d’envoi se présentent sous la forme
de texte codé en formulaire, mais il peut s’agir de tout type de données que le
serveur peut accepter.
Arguments
URL, dataToPost, {contentType}
Le premier argument est une URL absolue sur un serveur Web ; si la partie
“http://” de l’URL n’est pas spécifiée, elle est supposée.
Le deuxième argument correspond aux données à envoyer. Si le troisième
argument est "application/x-www-form-urlencoded" ou s’il n’est pas spécifié,
dataToPost doit être codé en formulaire conformément à la section 8.2.1 de la
spécification RFC 1866 (disponible à l’adresse http://www.faqs.org/rfcs/
rfc1866.html).
Le troisième argument est le type de contenu des données à envoyer. S’il n’est
pas spécifié, il prend par défaut la valeur "application/x-www-form-urlencoded".
Renvoie
Un objet représentant la réponse du serveur. La propriété data de cet objet est une
chaîne englobant les données résultant de l’opération d’envoi.
MMHttp.postTextCallback()
Description
Exécute un envoi HTTP du texte à l’URL spécifiée et passe la réponse du serveur
à la fonction spécifiée. En règle générale, les données associées à une opération
d’envoi se présentent sous la forme de texte codé en formulaire, mais il peut s’agir
de tout type de données que le serveur peut accepter.
Arguments
callbackFunc, URL, dataToPost, {contentType}
Le premier argument est le nom de la fonction JavaScript à appeler lorsque la
requête HTTP est terminée.
Le deuxième argument est une URL absolue sur un serveur Web ; si la partie
“http://” de l’URL n’est pas spécifiée, elle est supposée.
Le troisième argument correspond aux données à envoyer. Si le troisième
argument est "application/x-www-form-urlencoded" ou s’il n’est pas spécifié, data
doit être codé en formulaire conformément à la section 8.2.1 de la spécification
RFC 1866 (disponible à l’adresse http://www.faqs.org/rfcs/rfc1866.html).
Le quatrième argument est le type de contenu des données à envoyer. S’il n’est
pas spécifié, il prend par défaut la valeur "application/x-www-form-urlencoded".
Renvoie
224
Chapitre 7
Un objet représentant la réponse du serveur. La propriété data de cet objet est une
chaîne englobant les données résultant de l’opération d’envoi.
000ExtendingDWU.book Page 225 Thursday, June 8, 2000 3:38 PM
8
CHAPITRE 8
API de base de données
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les fonctions de base de données vous permettent d'utiliser des instructions SQL
et des procédures stockées et d'extraire certaines informations du schéma de base
de données. Un schéma de base de données constitue la structure de la base (ces
informations structurelles sont également appelées méta-données). La structure
d'une base de données comprend les noms des tables et des colonnes de la base.
Les fonctions de l'API de base de données vous permettent d'extraire les noms des
tables et des colonnes des instructions SQL et procédures stockées, d'extraire les
noms d'utilisateur et les mots de passe servant à établir des connexions à des bases
de données et d'afficher les résultats d'une instruction SQL ou d'une procédure
stockée exécutée. Ces fonctions sont utilisées à la conception, lorsque les
utilisateurs créent leurs applications web, par opposition à l'exécution, lorsque
l'application web est déployée.
Les fonctions de base de données peuvent être utilisées par n'importe quelle
extension. En fait, les fonctions API de comportement de serveur, de format des
données et de source de données d'UltraDev utilisent les fonctions de base de
données.
L'exemple suivant illustre la définition de la fonction de comportement de serveur,
getDynamicBindings(), pour le jeu d'enregistrements. Le fichier Recordset.js se trouve
dans le répertoire /Configuration/ServerBehaviors/ASP.
225
000ExtendingDWU.book Page 226 Thursday, June 8, 2000 3:38 PM
Notez que la fonction MMDB.getColumnList() est utilisée.
function getDynamicBindings(elementNode)
{
var ss = findSSrec(elementNode, LABEL_Type)
var connString = ss.activeconnection
var connName = ss.connectionName
var statement = ss.source
var rsName = ss.rsName
var pa = new Array()
if (String(ss.ParamArray) != "undefined")
{
for (var i = 0; i < ss.ParamArray.length; i++)
{
pa[i] = new Array()
pa[i][0] = ss.ParamArray[i].name
pa[i][1] = ss.ParamArray[i].value
}
}
var statement = ReplaceParamsWithVals(statement, pa)
return MMDB.getColumnList(connName, statement)
}
Fonctions de l'API de base de données
La liste suivante décrit certains des arguments communs aux fonctions de base de
données :
La plupart des fonctions de base de données utilisent un nom de connexion
comme argument. Vous pouvez afficher une liste des noms de connexion
valides dans Connection Manager d'UltraDev ou utiliser la fonction
MMDB.getConnectionList() pour obtenir par programme une liste de tous les noms
de connexion.
Les procédures stockées exigent souvent des paramètres. Il existe deux façons de
spécifier des valeurs de paramètres pour les fonctions de base de données. En
premier lieu, vous pouvez fournir une table de valeurs de paramètre
(paramValuesArray). Si vous ne spécifiez que des valeurs de paramètre, celles-ci
doivent être dans l'ordre dans lequel la procédure stockée les demande. En
second lieu, vous pouvez fournir une table de noms de paramètres
(paramNameArray). Vous pouvez utiliser la fonction MMDB.getSPParamsAsString()
pour extraire les paramètres de la procédure stockée. Si vous fournissez des
noms de paramètres, les valeurs spécifiées dans paramValuesArray doivent être
dans l'ordre dans lequel les noms ont été spécifiés dans paramNameArray.
226
Chapitre 8
000ExtendingDWU.book Page 227 Thursday, June 8, 2000 3:38 PM
MMDB.getColumnAndTypeList()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une liste de colonnes avec leurs types à partir d'une instruction SQL SELECT
exécutée.
Arguments
connName, statement
connName désigne le nom de la connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
statement désigne l'instruction SQL SELECT à exécuter.
Renvoie
Une table de chaînes représentant une liste de colonnes (et leurs types)
correspondant à l'instruction SELECT, ou une erreur si l'instruction SQL était
incorrecte ou si la connexion n'a pas pu être établie.
Exemple
Le code var columnArray = MMDB.getColumnAndTypeList("EmpDB","Select * from
Employees") renvoie la table de chaînes suivante :
columnArray[0] = "EmpName" , columnArray[1] = "varchar", columnArray[2] =
"EmpFirstName", columnArray[3] = "varchar", columnArray[4] = "Age",
columnArray[5] = "integer"
MMDB.getColumnList()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une liste de colonnes à partir d'une instruction SQL SELECT exécutée.
Arguments
connName, statement
connName désigne un nom de connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
statement désigne l'instruction SQL SELECT à exécuter.
Renvoie
Une table de chaînes représentant une liste de colonnes correspondant à
l'instruction SELECT, ou une erreur si l'instruction SQL était incorrecte ou si la
connexion n'a pas pu être établie.
Exemple
Le code var columnArray = MMDB.getColumnList("EmpDB","Select * from Employees")
renvoie la table de chaînes suivante :
columnArray[0] = "EmpName", columnArray[1] = "EmpFirstName", columnArray[2] = "Age"
MMDB.getColumnsOfTable()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une liste de toutes les colonnes de la table spécifiée.
Arguments
connName, tableName
API de base de données
227
000ExtendingDWU.book Page 228 Thursday, June 8, 2000 3:38 PM
connName désigne le nom de la connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
tableName est le nom d'une table de la base de données désignée par connName.
Renvoie
Une table de chaînes, chaque chaîne désignant le nom d'une colonne de la table.
Exemple
L'instruction MMDB.getColumnsOfTable ("EmpDB","Employees"); renvoie les chaînes
suivantes :
["EmpID", "FirstName", "LastName"]
MMDB.getConnectionList()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une liste de toutes les chaînes de connexion définies dans Connection
Manager.
Arguments
Aucun.
Renvoie
Une table de chaînes, chaque chaîne désignant le nom d'une connexion tel qu'il
apparaît dans Connection Manager.
Exemple
Un appel à MMDB.getConnectionList () pourrait renvoyer les chaînes ["EmpDB", "Test",
"TestEmp"].
MMDB.getConnectionName()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Extrait le nom de connexion correspondant à la chaîne de connexion spécifiée.
Cette fonction est utile lorsque vous devez resélectionner un nom de connexion
dans l'interface utilisateur à partir des données de la page.
Si vous avez une chaîne de connexion faisant référence à deux pilotes différents,
vous pouvez spécifier à la fois la chaîne de connexion et le pilote correspondant au
nom de connexion que vous souhaitez obtenir. Vous pouvez par exemple avoir
deux connexions :
Connexion1 possède les propriétés suivantes :
ConnectionString="jdbc:inetdae:velcro-qa-5:1433?database=pubs"
DriverName="com.inet.tds.TdsDriver"
Connexion2 possède les propriétés suivantes :
ConnectionString="jdbc:inetdae:velcro-qa-5:1433?database=pubs"
DriverName="com.inet.tds.TdsDriver2"
228
Chapitre 8
000ExtendingDWU.book Page 229 Thursday, June 8, 2000 3:38 PM
Les chaînes de connexion de Connexion1 et Connexion2 sont identiques.
Connexion2 établit une connexion avec une version plus récente de TdsDriver.
Communiquez le nom du pilote à cette fonction pour définir complètement le
nom de connexion que vous souhaitez obtenir.
Arguments
connString, {driverName}
connString désigne la chaîne de connexion utilisée pour obtenir le nom de
connexion.
driverName est un argument facultatif définissant connString de façon plus
précise.
Renvoie
Une chaîne de nom de connexion correspondant à la chaîne de connexion.
Exemple
Le code suivant renvoie la chaîne "EmpDB" :
var connectionName = MMDB.getConnectionName ("dsn=EmpDB;uid=;pwd=");
MMDB.getConnectionString()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait la chaîne de connexion associée au nom de connexion spécifié.
Arguments
connName
désigne un nom de connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
connName
Renvoie
Une chaîne correspondant au nom de connexion.
Exemple
Le code var connectionString = MMDB.getConnectionString ("EmpDB") renvoie des
chaînes différentes pour une connexion ADO ou JDBC.
Pour une connexion ADO, la chaîne suivante peut être renvoyée :
"dsn=EmpDB;uid=;pwd=";
Pour une connexion JDBC, la chaîne suivante peut être renvoyée :
"jdbc:inetdae:192.168.64.49:1433?database=pubs&user=JoeUser&password=joesSecret
MMDB.getDriverName()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Extrait le nom du pilote associé à la connexion spécifiée. Seule une connexion
JDBC possède un nom de pilote dans Dreamweaver UltraDev 1.0.
API de base de données
229
000ExtendingDWU.book Page 230 Thursday, June 8, 2000 3:38 PM
Arguments
connName
désigne un nom de connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
connName
Renvoie
Une chaîne contenant le nom du pilote.
Exemple
L'instruction MMDB.getDriverName ("EmpDB"); pourrait renvoyer la chaîne suivante :
"jdbc/oracle/driver/JdbcOracle"
MMDB.getPassword()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait le mot de passe utilisé pour la connexion spécifiée.
Arguments
connName
désigne un nom de connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
connName
Renvoie
Une chaîne de connexion associée au nom de connexion.
Exemple
L'instruction MMDB.getPassword ("EmpDB"); peut renvoyer "joessecret".
MMDB.getRuntimeConnectionType()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie le type de connexion d'exécution du nom de connexion spécifié. Cette
fonction peut renvoyer l'une des valeurs suivantes : "ADO", "ADODSN", "JDBC" ou
"CFDSN".
Arguments
connName
désigne le nom de la connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
connName
Renvoie
Une chaîne correspondant au type de connexion.
Exemple
Le code suivant renverrait la chaîne "ADO" pour une connexion ADO :
var connectionType = MMDB.getRuntimeConnectionType ("EmpDB")
MMDB.getSPColumnList()
Disponibilité
230
Dreamweaver UltraDev 1.0
Description
Extrait une liste de colonnes de jeu de résultats générées par un appel à la
procédure stockée spécifiée.
Arguments
connName, statement, paramValuesArray
Chapitre 8
000ExtendingDWU.book Page 231 Thursday, June 8, 2000 3:38 PM
connName désigne un nom de connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
statement est le nom de la procédure stockée qui renvoie le jeu de résultats
lorsqu'elle est exécutée.
paramValuesArray désigne une table contenant une liste de valeurs test de
paramètre de conception. Spécifiez les valeurs de paramètre dans l'ordre
attendu par la procédure stockée. Vous pouvez utiliser la fonction
MMDB.getSPParamsAsString() pour obtenir les paramètres de la procédure stockée.
Renvoie
Une table de chaînes représentant la liste de colonnes. Cette fonction renvoie une
erreur si l'instruction SQL est incorrecte ou si la chaîne de connexion est erronée.
Exemple
Le code suivant pourrait renvoyer une liste de colonnes de jeu de résultats générées
à partir de la procédure stockée exécutée, getNewEmployeesMakingAtLeast :
var paramValueArray = new Array("2/1/2000", "50000")
var columnArray = MMDB.getSPColumnList("EmpDB", "getNewEmployeesMakingAtLeast",
paramValueArray)
Les valeurs renvoyées sont les suivantes :
columnArray[0] = "EmpID", columnArray[1] = "LastName", columnArray[2] ="startDate",
columnArray[3] = "salary"
MMDB.getSPColumnListNamedParams()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une liste de colonnes de jeu de résultats générées par un appel à la
procédure stockée spécifiée.
Arguments
connName, statement, paramNameArray, paramValuesArray
connName désigne un nom de connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
statement est le nom de la procédure stockée qui renvoie le jeu de résultats
lorsqu'elle est exécutée.
paramNameArray désigne une table contenant une liste de noms de paramètre.
Vous pouvez utiliser la fonction MMDB.getSPParamsAsString() pour obtenir les
paramètres de la procédure stockée.
paramValuesArray désigne une table contenant une liste de valeurs test de
paramètre de conception. Vous pouvez éventuellement spécifier si la procédure
exige des paramètres lors de son exécution. Si vous avez fourni des noms de
paramètre dans paramNameArray, spécifiez les valeurs de paramètre dans l'ordre
dans lequel leurs noms apparaissent dans paramNameArray. Dans le cas contraire,
spécifiez les valeurs dans l'ordre attendu par la procédure stockée.
API de base de données
231
000ExtendingDWU.book Page 232 Thursday, June 8, 2000 3:38 PM
Renvoie
Une table de chaînes représentant la liste de colonnes. Cette fonction renvoie une
erreur si l'instruction SQL est incorrecte ou si la chaîne de connexion est erronée.
Exemple
Le code suivant pourrait renvoyer une liste de colonnes de jeu de résultats générées
à partir de la procédure stockée exécutée, getNewEmployeesMakingAtLeast :
var paramNameArray = new Array("startDate", "salary")
var paramValueArray = new Array("2/1/2000", "50000")
var columnArray = MMDB.getSPColumnListNamedParams("EmpDB",
"getNewEmployeesMakingAtLeast", paramNameArray, paramValueArray)
Les valeurs renvoyées sont les suivantes :
columnArray[0] = "EmpID", columnArray[1] = "LastName", columnArray[2] ="startDate",
columnArray[3] = "salary"
MMDB.getSPParamsAsString()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une chaîne délimitée par des virgules contenant la liste des paramètres pris
par la procédure stockée.
Arguments
connName, procName
connName désigne un nom de connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
procName est le nom de la procédure stockée.
Renvoie
Une chaîne délimitée par des virgules contenant la liste des paramètres exigés par
la procédure stockée. Les noms, la direction et le type de données des paramètres
sont inclus, séparés par des points-virgules (;).
Exemple
Le code MMDB.getSPParamsAsString ("EmpDB","getNewEmployeesMakingAtLeast")
pourrait renvoyer une chaîne de la forme startDate;direction:in;datatype:date,
salary;direction:in;datatype:integer
Ici, la procédure stockée getNewEmployeesMakingAtLeast possède deux paramètres :
startDate et Salary. Pour ces deux paramètres, la direction est in (en entrée) et le type
de données est date.
232
Chapitre 8
000ExtendingDWU.book Page 233 Thursday, June 8, 2000 3:38 PM
MMDB.getTables()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Extrait une liste de toutes les tables définies pour la base de données spécifiée.
Chaque objet de table possède trois propriétés : table, schema et catalog. Table est le
nom de la table, schema le nom du schéma contenant la table et catalog désigne le
catalogue contenant la table.
Arguments
connName
désigne un nom de connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
connName
Renvoie
Une table d'objets ; chaque objet possède trois propriétés : table, schema et catalog.
Exemple
L'instruction MMDB.getTables ("EmpDB"); peut générer une table de deux objets. Les
propriétés du premier objet peuvent être les suivantes :
object1[table:"Employees", schema:"personnel", catalog:"syscat"]
Les propriétés du second objet peuvent être les suivantes :
object2[table:"Departments", schema:"demo", catalog:"syscat2"]
MMDB.getUserName()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie un nom d'utilisateur pour la connexion spécifiée.
Arguments
connName
désigne un nom de connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
connName
Renvoie
Une chaîne de nom d'utilisateur associée au nom de connexion.
Exemple
L'instruction MMDB.getUserName ("EmpDB"); peut renvoyer "amit".
MMDB.showConnectionMgrDialog()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Affiche la boîte de dialogue Connection Manager.
Arguments
Aucun.
Renvoie
Rien n'est renvoyé. La boîte de dialogue Connection Manager s'affiche.
API de base de données
233
000ExtendingDWU.book Page 234 Thursday, June 8, 2000 3:38 PM
MMDB.showResultset()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Affiche une boîte de dialogue contenant les résultats de l'exécution de l'instruction
SQL spécifiée. Cette boîte de dialogue contient une grille tabulaire, dont l'en-tête
reflète les informations de colonne et les données du jeu de résultats généré par la
procédure stockée exécutée. Si la chaîne de connexion ou l'instruction SQL n'est
pas valide, une erreur apparaît. Vous pouvez utiliser cette fonction pour vérifier la
validité de l'instruction SQL.
Arguments
connName, SQLstatement
connName désigne un nom de connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
SQLstatement désigne l'instruction SQL SELECT.
Renvoie
Rien n'est renvoyé. Cette fonction renvoie une erreur si l'instruction SQL est
incorrecte ou si la chaîne de connexion est erronée.
Exemple
Le code suivant affiche les résultats de l'instruction SQL exécutée :
MMDB.showResultset("EmpDB","Select EmpName,EmpFirstName,Age from Employees")
MMDB.showSPResultset()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Affiche une boîte de dialogue contenant les résultats de l'exécution de la procédure
stockée spécifiée. Cette boîte de dialogue contient une grille tabulaire dont
l'en-tête reflète les informations de colonne et les données du jeu de résultats
généré par la procédure stockée exécutée. Si la chaîne de connexion ou la
procédure stockée n'est pas valide, une erreur apparaît. Vous pouvez utiliser cette
fonction pour vérifier la validité de la procédure stockée.
Arguments
connName, procName, paramValuesArray
connName désigne le nom de la connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
procName est le nom de la procédure stockée à exécuter.
paramValuesArray désigne une table contenant une liste de valeurs test de
paramètres de conception. Spécifiez les valeurs de paramètres dans l'ordre
attendu par la procédure stockée. Vous pouvez utiliser la fonction
MMDB.getSPParamsAsString() pour obtenir les paramètres de la procédure stockée.
Renvoie
234
Chapitre 8
Rien n’est renvoyé. Cette fonction renvoie une erreur si l'instruction SQL est
incorrecte ou si la chaîne de connexion est erronée.
000ExtendingDWU.book Page 235 Thursday, June 8, 2000 3:38 PM
Exemple
Le code suivant affiche les résultats de l'instruction stockée exécutée :
var paramValueArray = new Array("2/1/2000", "50000")
MMDB.showSPResultset("EmpDB", "getNewEmployeesMakingAtLeast", paramValueArray)
MMDB.showSPResultsetNamedParams()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Affiche une boîte de dialogue contenant les résultats de l'exécution de la procédure
stockée spécifiée. Cette boîte de dialogue contient une grille tabulaire dont
l'en-tête reflète les informations de colonne et les données du jeu de résultats
généré par la procédure stockée exécutée. Si la chaîne de connexion ou la
procédure stockée n'est pas valide, une erreur apparaît. Vous pouvez utiliser cette
fonction pour vérifier la validité de la procédure stockée. Cette fonction diffère de
MMDB.showSPResultset() car vous pouvez spécifier les valeurs de paramètre par leur
nom, au lieu de l'ordre attendu par la procédure stockée.
Arguments
connName, procName, paramNameArray, paramValuesArray
connName désigne un nom de connexion UltraDev spécifié dans Connection
Manager et sert à établir une connexion de base de données à une source de
données active.
procName est le nom de la procédure stockée qui renvoie le jeu de résultats
lorsqu'elle est exécutée.
paramNameArray désigne une table contenant une liste de noms de paramètre.
Vous pouvez utiliser la fonction MMDB.getSPParamsAsString() pour obtenir les
paramètres de la procédure stockée.
paramValuesArray désigne une table contenant une liste de valeurs test de
paramètre de conception.
Renvoie
Rien n’est renvoyé. Cette fonction renvoie une erreur si l'instruction SQL est
incorrecte ou si la chaîne de connexion est erronée.
Exemple
Le code suivant affiche les résultats de l'instruction stockée exécutée :
var paramNameArray = new Array("startDate", "salary")
var paramValueArray = new Array("2/1/2000", "50000")
MMDB.showSPResultsetNamedParams("EmpDB","getNewEmployeesMakingAtLeast",
paramNameArray, paramValueArray)
API de base de données
235
000ExtendingDWU.book Page 236 Thursday, June 8, 2000 3:38 PM
236
Chapitre 8
000ExtendingDWU.book Page 237 Thursday, June 8, 2000 3:38 PM
9
CHAPITRE 9
Extensions C
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le mécanisme d’extension C vous permet d’utiliser les fichiers d’extension
Dreamweaver en combinant un code JavaScript et votre propre code C. Vous créez
des fonctions en langage C, vous les intégrez à une DLL ou à une bibliothèque
partagée, vous enregistrez la bibliothèque dans le dossier Configuration/
JSExtensions du dossier de l’application Dreamweaver, puis vous appelez les
fonctions à partir de JavaScript à l’aide de l’interpréteur JavaScript intégré à
Dreamweaver.
Par exemple, supposons que vous souhaitiez définir un objet Dreamweaver
permettant d’insérer dans le document actif le contenu d’un fichier utilisateur.
Etant donné que le code JavaScript côté client ne prend pas en charge les E/S,
vous devez créer une fonction en C pour fournir cette fonctionnalité.
Vous pouvez utiliser le code HTML et JavaScript ci-dessous pour créer un objet
Insert Text from File simple. Notez que la fonction objectTag() appelle une fonction C
nommée readContentsOfFile() qui est stockée dans une bibliothèque appelée myLibrary.
<HTML>
<HEAD>
<SCRIPT>
function objectTag() {
fileName = document.forms[0].myFile.value;
return myLibrary.readContentsOfFile(fileName);
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
Enter the name of the file to be inserted:
<INPUT TYPE="file" NAME="myFile">
</FORM>
</BODY>
</HTML>
237
000ExtendingDWU.book Page 238 Thursday, June 8, 2000 3:38 PM
La fonction readContentsOfFile() accepte une liste d’arguments fournis par
l’utilisateur, décompresse l’argument contenant le nom du fichier, lit le contenu
du fichier et le compresse en guise de valeur renvoyée. Pour plus d’informations
sur les structures de données et les fonctions JavaScript apparaissant dans
readContentsOfFile(), voir la section « API d’extension C » à la page 239.
JSBool
readContentsOfFile(JSContext *cx, JSObject *obj, unsigned int argc, jsval *argv, jsval *rval)
{
char *fileName, *fileContents;
JSBool success;
unsigned int length;
/* Make sure caller passed in exactly one argument. If not,
* then tell the interpreter to abort script execution. */
if (argc != 1){
JS_ReportError(cx, "Wrong number of arguments", 0);
return JS_FALSE;
}
/* Convert the argument to a string */
fileName = JS_ValueToString(cx, argv[0], &length);
if (fileName == NULL){
JS_ReportError(cx, "The argument must be a string", 0);
return JS_FALSE;
}
/* Use the string (the file name) to open and read a file */
fileContents = exerciseLeftToTheReader(fileName);
/* Store file contents in rval, which is the return value passed
* back to the caller */
success = JS_StringToValue(cx, fileContents, 0, *rval);
free(fileContents);
/* Return true to continue or false to abort the script */
return success;
}
Pour vous assurer que la fonction readContentsOfFile() s’exécute correctement sans
provoquer d’erreur JavaScript, vous devez l’enregistrer avec l’interpréteur
JavaScript en incluant une fonction nommée MM_Init() dans votre bibliothèque.
Lorsque l’application Dreamweaver charge la bibliothèque au démarrage, elle
appelle la fonction MM_Init() pour extraire trois informations :
le nom JavaScript de la fonction ;
un pointeur vers la fonction ;
le nombre d’arguments attendus par la fonction.
238
Chapitre 9
000ExtendingDWU.book Page 239 Thursday, June 8, 2000 3:38 PM
La fonction MM_Init() de myLibrary pourrait ressembler à ceci :
void
MM_Init()
{
JS_DefineFunction("readContentsOfFile", readContentsOfFile, 1);
}
Votre bibliothèque doit inclure exactement une instance de la macro suivante :
/* MM_STATE is a macro that expands to some definitions that are
* needed to interact with Dreamweaver. This macro must
* be defined exactly once in your library. */
MM_STATE
Remarque : la bibliothèque peut être implémentée en C ou C++, mais le fichier contenant
MM_Init() et MM_STATE doit être implémenté en C. Le compilateur C++ modifie les noms
de fonction, ce qui rend impossible la détection de la fonction MM_Init() dans Dreamweaver.
API d’extension C
Dans votre bibliothèque, le code C doit interagir avec l’interpréteur JavaScript de
Dreamweaver à trois moments distincts :
au démarrage, pour enregistrer les fonctions de la bibliothèque ;
lorsque la fonction est appelée, pour décompresser les arguments qui sont
passés de JavaScript à C ;
avant le retour de la fonction, pour compresser la valeur renvoyée.
Pour accomplir ces tâches, l’interpréteur définit plusieurs types de données et
affiche une API. Les définitions des types de données et des fonctions ci-dessous
figurent dans le fichier mm_jsapi.h. Pour que votre bibliothèque puisse
fonctionner correctement, vous devez insérer mm_jsapi.h en haut de chaque
fichier de votre bibliothèque en utilisant la ligne suivante :
#include "mm_jsapi.h"
typedef struct JSContext JSContext
Description
Un pointeur vers ce type de données opaque est passé à la fonction C. Certaines
des fonctions de l’API utilisent ce pointeur comme argument.
typedef struct JSObject JSObject
Description
Un pointeur vers ce type de données opaque est passé à la fonction C. Ce type de
données représente un objet pouvant correspondre à un objet array ou tout autre
type d’objet.
Extensions C
239
000ExtendingDWU.book Page 240 Thursday, June 8, 2000 3:38 PM
typedef struct jsval jsval
Description
Une structure de données opaque pouvant contenir un nombre entier ou un
pointeur vers un nombre à virgule flottante, une chaîne ou un objet. Certaines des
fonctions de l’API permettent de lire les valeurs des arguments de fonction à partir
du contenu d’un jsval, et d’autres permettent d’écrire la valeur renvoyée par la
fonction en écrivant un jsval.
typedef enum { JS_FALSE = 0, JS_TRUE = 1 } JSBool
Description
Un type de données simple utilisé pour stocker une valeur booléenne.
typedef JSBool (*JSNative)(JSContext *cx, JSObject *obj, unsigned
int argc, jsval *argv, jsval *rval)
Description
Signature permettant l’implémentation sous C de fonctions JavaScript, où :
cx est un pointeur vers une structure JSContext opaque qui doit être transmis à
certaines fonctions de l’API JavaScript. Cette variable contient le contexte
d’exécution de l’interpréteur.
obj est un pointeur vers l’objet dans le contexte duquel le script s’exécute.
Pendant l’exécution du script, le mot clé this désigne cet objet.
argc correspond au nombre d’arguments passés à la fonction.
argv est un pointeur vers un tableau de jsvals. Le tableau comporte argc éléments
en longueur.
rval est un pointeur vers un jsval unique. La valeur renvoyée par la fonction doit
être enregistrée dans *rval.
La fonction renvoie la valeur JS_TRUE en cas de succès ou JS_FALSE en cas d’échec. Si
la valeur JS_FALSE est renvoyée, l’exécution du script en cours s’arrête.
JSBool JS_DefineFunction()
Description
Enregistre une fonction C avec l’interpréteur JavaScript dans Dreamweaver. Après
le retour de cette fonction, des scripts JavaScript appelant la fonction spécifiée
dans name exécutent le code vers lequel pointe call.
Normalement, vous appelez cette fonction à partir de la fonction MM_Init() que
Dreamweaver appelle lors de son démarrage.
Arguments
char *name, JSNative call, unsigned int nargs
name est le nom de la fonction tel qu’il apparaît dans JavaScript.
call est un pointeur vers une fonction C. La fonction doit accepter les mêmes
arguments que readContentsOfFile, et renvoyer une valeur JSBool indiquant le
succès ou l’échec de l’exécution de la fonction.
240
Chapitre 9
000ExtendingDWU.book Page 241 Thursday, June 8, 2000 3:38 PM
nargs est le nombre d’arguments que la fonction doit recevoir.
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
char *JS_ValueToString()
Description
Extrait un argument de fonction à partir d’un jsval, le convertit en chaîne (si
possible) et renvoie la valeur convertie à l’appelant.
Arguments
JSContext *cx, jsval v, unsigned int *pLength
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
v est le jsval à partir duquel la chaîne sera extraite.
pLength est un pointeur vers un nombre entier qui n’est pas signé. Cette
fonction définit pour *plength une valeur égale à la longueur de la chaîne en
octets.
Renvoie
Un pointeur vers une chaîne en cas de succès ou NULL en cas d’échec.
JSBool JS_ValueToInteger()
Description
Extrait un argument de fonction à partir d’un jsval, le convertit en nombre entier
(si possible) et renvoie la valeur convertie à l’appelant.
Arguments
JSContext *cx, jsval v, long *lp
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
v est le jsval à partir duquel la chaîne sera extraite.
lp est un pointeur vers un nombre entier de 4 octets. Cette fonction stocke la
valeur convertie dans *lp.
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
JSBool JS_ValueToDouble()
Description
Extrait un argument de fonction d’un jsval, le convertit en réel double (si possible)
et renvoie la valeur convertie à l’appelant.
Arguments
JSContext *cx, jsval v, double *dp
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
v est le jsval à partir duquel la chaîne sera extraite.
dp est un pointeur vers un réel double de 8 octets. Cette fonction stocke la
valeur convertie dans *dp.
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
Extensions C
241
000ExtendingDWU.book Page 242 Thursday, June 8, 2000 3:38 PM
JSBool JS_ValueToBoolean()
Description
Extrait un argument de fonction à partir d’un jsval, le convertit en valeur
booléenne (si possible) et renvoie la valeur convertie à l’appelant.
Arguments
JSContext *cx, jsval v, JSBool *bp
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
v est le jsval à partir duquel la chaîne sera extraite.
bp est un pointeur vers un JSBool. Cette fonction stocke la valeur convertie dans
*bp.
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
JSBool JS_ValueToObject()
Description
Extrait un argument de fonction à partir d’un jsval, le convertit en objet (si
possible) et renvoie la valeur convertie à l’appelant. Si l’objet correspond à un
tableau, utilisez JS_GetArrayLength() et JS_GetElement() pour lire son contenu.
Arguments
JSContext *cx, jsval v, JSObject **op
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
v est le jsval à partir duquel la chaîne sera extraite.
op est un pointeur vers un (JSObject *). Cette fonction stocke la valeur convertie
dans *op.
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
JSBool JS_StringToValue()
Description
Stocke la valeur renvoyée d’une chaîne dans un jsval.
Arguments
JSContext *cx, char *bytes, size_t sz, jsval *vp
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
bytes est la chaîne à stocker dans le jsval. La chaîne est copiée de façon à ce que
l’appelant puisse la libérer lorsqu’elle ne sera plus nécessaire. Si la taille de la
chaîne n’est pas spécifiée (voir l’argument sz), alors la chaîne doit se terminer
par un 0.
sz indique la taille de la chaîne en octets. Si sz est égal à 0, la longueur de la
chaîne se terminant par 0 est calculée automatiquement.
vp est un pointeur vers le jsval dans lequel le contenu de la chaîne doit être
copié.
Renvoie
242
Chapitre 9
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
000ExtendingDWU.book Page 243 Thursday, June 8, 2000 3:38 PM
JSBool JS_DoubleToValue()
Description
Stocke la valeur renvoyée d’un nombre à virgule flottante dans un jsval.
Arguments
JSContext *cx, double dv, jsval *vp
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
dv est un nombre à virgule flottante de 8 octets.
vp est un pointeur vers le jsval dans lequel le contenu du réel double doit être
copié.
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
JSBool JS_IntegerToValue()
Description
Stocke la valeur renvoyée d’un nombre entier dans un jsval.
Arguments
long lv
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
JSBool JS_BooleanToValue()
Description
Stocke la valeur renvoyée d’une valeur booléenne dans un jsval.
Arguments
JSBool bv
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
JSBool JS_ObjectToValue()
Description
Stocke la valeur renvoyée d’un objet dans un jsval. Utilise JS_ NewArrayObject() pour
créer un objet array et utilise JS_SetElement() pour en définir le contenu.
Arguments
JSObject *obj
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
Extensions C
243
000ExtendingDWU.book Page 244 Thursday, June 8, 2000 3:38 PM
char *JS_ObjectType()
Description
A partir d’une référence d’objet, renvoie une chaîne décrivant le type de l’objet.
Pour les objets array, la valeur renvoyée est Array.
Arguments
JSObject *obj
En principe, cet argument est transmis et converti à l’aide de JS_ValueToObject().
Renvoie
Pointeur vers une chaîne terminée par 0. L’appelant ne doit pas libérer cette chaîne
une fois le traitement terminé.
JSObject *JS_NewArrayObject()
Description
Crée un nouvel objet contenant un tableau de jsvals.
Arguments
JSContext *cx, unsigned int length, jsval *v
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
length correspond au nombre d’éléments que le tableau doit contenir.
v est un pointeur facultatif vers le jsvals devant être stocké dans le tableau. Si la
valeur renvoyée est différente de NULL, v correspond à un tableau contenant
length éléments. Si la valeur renvoyée est NULL, le contenu initial de l’objet array
est indéterminé (et il peut être défini à l’aide de JS_SetElement()).
Renvoie
Pointeur vers un nouvel objet array, ou NULL en cas d’échec de l’exécution de la
fonction.
long JS_GetArrayLength()
Description
A partir d’un pointeur vers un objet array, extrait le nombre d’éléments contenus
dans le tableau.
Arguments
JSContext *cx, JSObject *obj
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
obj est une référence à un objet array.
Renvoie
Nombre d’éléments contenus dans le tableau, ou -1 en cas d’échec de l’exécution
de la fonction.
JSBool JS_GetElement()
Description
Lit un seul élément d’un objet array.
Arguments
JSContext *cx, JSObject *obj, unsigned int index, jsval *v
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
obj est un pointeur vers un objet array.
index est un index des nombres entiers du tableau. Le premier élément est
l’index 0, le dernier élément étant l’index (length - 1).
244
Chapitre 9
000ExtendingDWU.book Page 245 Thursday, June 8, 2000 3:38 PM
v est un pointeur vers un jsval dans lequel sera copié le contenu du jsval figurant
dans le tableau.
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
JSBool JS_SetElement()
Description
Ecrit un seul élément d’un objet array.
Arguments
JSContext *cx, JSObject *obj, unsigned int index, jsval *v
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
obj est un pointeur vers un objet array.
index est un index des nombres entiers du tableau. Le premier élément est
l’index 0, le dernier élément étant l’index (length - 1).
v est un pointeur vers un jsval dont le contenu doit être copié dans le jsval du
tableau.
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
JSBool JS_ExecuteScript()
Description
Compile et exécute une chaîne JavaScript. Si le script génère une valeur renvoyée,
elle est renvoyée dans *rval.
Arguments
JSContext *cx, JSObject *obj, char *script, unsigned in sz, jsval *rval
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
obj est un pointeur vers l’objet dans le contexte duquel le script s’exécute.
Pendant l’exécution du script, le mot clé this désigne cet objet. En général, il
s’agit du pointeur JSObject passé à la fonction JavaScript.
script est une chaîne contenant le code JavaScript. Si la taille de la chaîne n’est
pas spécifiée (voir l’argument sz), alors la chaîne doit se terminer par un 0.
sz indique la taille de la chaîne en octets. Si sz est égal à 0, la longueur de la
chaîne se terminant par 0 est calculée automatiquement.
rval est un pointeur vers un jsval unique. La valeur renvoyée pour la fonction est
stockée dans *rval.
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
Extensions C
245
000ExtendingDWU.book Page 246 Thursday, June 8, 2000 3:38 PM
JSBool JS_ReportError()
Description
Décrit la cause d’une erreur de script. Appelle cette fonction avant de renvoyer la
valeur JS_FALSE pour expliquer à l’utilisateur les raisons pour lesquelles le script a
échoué (“wrong number of arguments”, par exemple).
Arguments
JSContext *cx, char *error, size_t sz
cx est le pointeur JSContext opaque passé à la fonction JavaScript.
error est une chaîne contenant le message d’erreur. La chaîne est copiée de façon
à ce que l’appelant puisse la libérer lorsqu’elle ne sera plus nécessaire. Si la taille
de la chaîne n’est pas spécifiée (voir sz, ci-dessous), alors la chaîne doit se
terminer par un 0.
sz indique la taille de la chaîne en octets. Si sz est égal à 0, la longueur de la
chaîne se terminant par 0 est calculée automatiquement.
Renvoie
Valeur booléenne indiquant le succès (JS_TRUE) ou l’échec (JS_FALSE) de l’exécution
de la fonction.
Appel d’une fonction C à partir de JavaScript
Maintenant que vous savez comment les extensions C fonctionnent dans
Dreamweaver et que vous connaissez les types de données et les fonctions sur
lesquels reposent ces extensions, prenons un exemple pour montrer comment
construire une bibliothèque et appeler une fonction.
Cet exercice fait appel à trois fichiers qui se trouvent dans le dossier Extending/
c_files du dossier de l’application Dreamweaver :
mm_jsapi.h est un fichier d’en-tête contenant les définitions de tous les types
de données et des fonctions décrits dans « API d’extension C » à la page 239.
Sample.c est un exemple de fichier de définition de la fonction computeSum().
Sample.mak est un fichier Make que vous pouvez utiliser pour créer un fichier
de définition Sample.c dans une DLL à l’aide de Microsoft Visual C++ ;
Sample.proj est le fichier équivalent permettant de créer une bibliothèque CFM
à l’aide de Metrowerks CodeWarrior. Si vous utilisez d’autres outils, vous
pouvez créer votre propre fichier Make.
Pour créer la DLL dans Windows :
1
Dans Microsoft Visual C++, choisissez Fichier > Ouvrir un espace de travail,
puis sélectionnez Sample.mak.
2
Choisissez Générer > Tout reconstruire.
Une fois l’opération de génération terminée, le fichier Sample.dll apparaît dans
le dossier contenant Sample.mak (ou dans l’un de ses sous-dossiers).
246
Chapitre 9
000ExtendingDWU.book Page 247 Thursday, June 8, 2000 3:38 PM
Pour générer la bibliothèque partagée sur le Macintosh :
1
Ouvrez le fichier Sample.proj dans Metrowerks CodeWarrior.
2
Générez le projet pour créer une bibliothèque CFM.
Une fois l’opération de génération terminée, un fichier nommé Sample apparaît
dans le dossier contenant Sample.proj (ou dans l’un de ses sous-dossiers).
Pour appeler la fonction computeSum() à partir de l’objet Insert Horizontal Rule :
1
Dans le dossier Configuration du dossier de l’application Dreamweaver, créez
un dossier appelé JSExtensions.
2
Copiez le fichier Sample.dll (Windows) ou Sample (Macintosh) dans le dossier
JSExtensions.
3
Dans un éditeur de texte, ouvrez le fichier horizontal_rule.htm qui se trouve
dans le dossier Configuration/Objects/Common.
4
Ajoutez la ligne alert(Sample.computeSum(2,2)); à la fonction objectTag() pour
qu’elle apparaisse comme suit :
function objectTag() {
// Return the html tag that should be inserted
alert(Sample.computeSum(2,2));
return "<HR>";
}
5
Enregistrez le fichier et redémarrez Dreamweaver.
Pour exécuter la fonction computeSum() :
Choisissez Insertion > Barre horizontale. Une boîte de dialogue contenant le
chiffre 4 (le résultat de la somme de 2 plus 2) s’affiche.
Extensions C
247
000ExtendingDWU.book Page 248 Thursday, June 8, 2000 3:38 PM
248
Chapitre 9
000ExtendingDWU.book Page 249 Thursday, June 8, 2000 3:38 PM
10
CHAPITRE 10
Objets
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les objets sont conçus pour insérer une chaîne de code spécifique dans le
document de l’utilisateur. Un objet apparaît dans un panneau de la palette
d’objets et dans le menu Insertion une fois que son fichier d’objet est stocké dans
un sous-dossier du dossier Configuration/Objects, situé dans le dossier de
l’application Dreamweaver.
Les objets sont constitués de deux composants : le fichier d’objet qui définit
l’élément inséré dans votre document, et l’image GIF de 18 x 18 pixels qui
apparaît dans la palette d’objets.
Les objets sont des fichiers HTML. La balise BODY d’un fichier d’objet peut
contenir un formulaire HTML acceptant des paramètres pour l’objet (par
exemple, le nombre de lignes et de colonnes du tableau à insérer). La balise HEAD
d’un fichier d’objet contient des fonctions JavaScript qui traitent les entrées de
formulaire de la balise BODY et contrôlent les éléments ajoutés au document de
l’utilisateur.
Remarque : les objets les plus simples contiennent uniquement le code HTML à insérer,
sans les balises BODY et HEAD. Pour plus d’informations, reportez-vous au chapitre
“Personnalisation de Dreamweaver” du manuel Utilisation de Dreamweaver.
Fonctionnement des fichiers d’objet
Lorsque l’utilisateur sélectionne un objet en cliquant sur une icône de la palette
d’objets ou en choisissant une option du menu Insertion, la chaîne d’événements
suivante se produit :
249
000ExtendingDWU.book Page 250 Thursday, June 8, 2000 3:38 PM
1
La balise FORM est recherchée dans le fichier d’objet. Si un formulaire existe (et
que l’option Afficher la boîte de dialogue lors de l’insertion d’objets est
sélectionnée dans la boîte de dialogue Préférences, catégorie Général),
Dreamweaver appelle la fonction windowDimensions(), si elle est définie, pour
déterminer la taille de la boîte de dialogue qui va afficher le formulaire. Si le
fichier d’objet ne contient aucun formulaire, Dreamweaver n’affiche pas de
boîte de dialogue et l’étape 2 est ignorée.
2
Si Dreamweaver affiche une boîte de dialogue à l’étape 1, l’utilisateur entre les
paramètres de l’objet (tel que le nombre de lignes et de colonnes d’un tableau)
dans la boîte de dialogue, puis clique sur OK.
3
La fonction objectTag() est appelée et la valeur qu’elle renvoie est insérée dans le
document immédiatement après la sélection en cours (elle ne remplace pas la
sélection en cours).
API d’objet
L’API d’objet ne contient que trois fonctions personnalisées qui sont toutes
facultatives. Les fonctions de l’API d’objet diffèrent des fonctions de l’API
JavaScript principale sur trois points :
Elles ne sont pas des méthodes de l’objet dreamweaver, dom ou site.
Elles ne sont significatives que dans le contexte des fichiers d’objet. En d’autres
termes, Dreamweaver n’appelle automatiquement la fonction objectTag() que si
elle est définie dans un fichier d’objet, tandis que dans tout autre fichier
d’extension, une fonction nommée objectTag() se comporte comme une
fonction utilisateur et vous devez l’appeler explicitement.
Il vous incombe d’écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l’opposé de celui des fonctions
de l’API principale dans laquelle vous appelez les fonctions, leur transmettez
des arguments, puis Dreamweaver génère des valeurs renvoyées, le cas échéant.
Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions et leur
transmet des arguments, puis vous générez des valeurs renvoyées, le cas échéant.
displayHelp()
Description
Si cette fonction est définie, un bouton Aide apparaît sous les boutons OK et
Annuler dans la boîte de dialogue des paramètres. Cette fonction est appelée
lorsque l’utilisateur clique sur le bouton Aide.
Arguments
Aucun.
Renvoie
250
Chapitre 10
Aucune.
000ExtendingDWU.book Page 251 Thursday, June 8, 2000 3:38 PM
Exemple
Dans l’exemple suivant, la fonction displayHelp() ouvre dans une fenêtre de
navigateur un fichier contenant les instructions d’utilisation de l’objet :
function displayHelp(){
dreamweaver.browseDocument(’http://people.netscape.com/andreww/dreamweaver/
objects.html’);
}
objectTag()
Description
Insère une chaîne de code dans le document de l’utilisateur.
Arguments
Aucun.
Renvoie
La chaîne à insérer.
Exemple
L’exemple suivant de la fonction objectTag() insère une combinaison OBJECT/EMBED
pour un contrôle ActiveX et un plug-in spécifiques :
function objectTag() {
return ‘\n’ +
’<OBJECT CLASSID="clsid:166F1OOB-3A9R-11FB-8075444553540000" \n’ +
’CODEBASE="http://www.mysite.com/product/cabs/myproduct.cab#version=1,0,0,0" \n’ +
’NAME="MyProductName"> \n’ +
’<PARAM NAME="SRC" VALUE=""> \n’ +
’<EMBED SRC="" HEIGHT="" WIDTH="" NAME="MyProductName"> \n’ +
’</OBJECT>’
windowDimensions()
Description
Définit les dimensions de la boîte de dialogue des paramètres. Si cette fonction
n’est pas définie, les dimensions de la fenêtre sont calculées automatiquement.
Remarque : ne définissez cette fonction que si vous souhaitez utiliser une boîte de dialogue
d’options ayant des dimensions supérieures à 640 x 480 pixels.
Arguments
platform
La valeur de l’argument est soit "macintosh", soit "windows", selon la plate-forme
utilisée par l’utilisateur.
Renvoie
Une chaîne de caractères au format "widthInPixels,heightInPixels".
Les dimensions renvoyées sont inférieures à la taille totale de la fenêtre de la boîte
de dialogue parce qu’elles n’incluent pas la zone des boutons OK et Annuler. Si les
dimensions renvoyées ne permettent pas de faire apparaître toutes les options, des
barres de défilement s’affichent.
Exemple
Dans l’exemple suivant, la fonction windowDimensions() fixe les dimensions de la
boîte de dialogue des paramètres à 648 x 520 pixels :
function windowDimensions(platform){
return "648,520";
}
Objets
251
000ExtendingDWU.book Page 252 Thursday, June 8, 2000 3:38 PM
Ajout d’objets à la palette d’objets
Dreamweaver ajoute automatiquement tous les fichiers se trouvant dans l’un des
sous-dossiers du dossier Configuration/Objects au panneau qui est associé à ce
sous-dossier. Par exemple, un fichier se trouvant dans le dossier Configuration/
Objects/MyObjects apparaîtrait dans le panneau MyObjects de la palette d’objets.
Remarque : bien que les fichiers d’objet puissent être stockés dans des dossiers distincts, il
est important que le nom de chaque fichier soit unique. La fonction dom.insertObject(), par
exemple, recherche un fichier spécifié dans l’ensemble du dossier Objects sans faire de
distinction entre les sous-dossiers. En effet, si le dossier Forms et le dossier MyObjects
contiennent chacun un fichier nommé Button.htm, par exemple, Dreamweaver n’est pas
capable de faire la différence entre les deux.
Chaque fichier d’objet est associé à une image GIF de 18 x 18 pixels qui apparaît
dans la palette d’objets. Le fichier image doit avoir le même nom de base que le
fichier d’objet (par exemple, object.gif est associé à object.htm) pour que la liaison
entre ces deux fichiers soit préservée.
Si vous créez une image d’objet de taille supérieure, Dreamweaver la
redimensionne automatiquement à 18 x 18 pixels. Si vous ne créez pas d’image
pour votre objet, une icône d’image brisée apparaît dans la palette d’objets.
Ajout d’objets au menu Insertion
Dreamweaver ajoute automatiquement tous les fichiers se trouvant dans l’un des
sous-dossiers du dossier Configuration/Objects au bas de la liste d’options du
menu Insertion.
Pour contrôler la position d’un objet dans le menu Insertion ou dans tout autre
menu, ou pour ajouter un objet à plusieurs menus, vous pouvez modifier le fichier
menus.xml. Dans Dreamweaver 3, ce fichier contrôle l’intégralité de la structure
de menus pour Dreamweaver. Pour plus d’informations sur la façon de modifier le
fichier menus.xml, voir le chapitre 16, “Personnalisation de Dreamweaver” du
manuel Utilisation de Dreamweaver.
Remarque : dans les versions antérieures de Dreamweaver, les éléments du menu Insertion
étaient contrôlés par un fichier nommé InsertMenu.htm. Ce fichier a été remplacé par
menus.xml.
252
Chapitre 10
000ExtendingDWU.book Page 253 Thursday, June 8, 2000 3:38 PM
11
CHAPITRE 11
Commandes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les commandes permettent d’exécuter presque n’importe quel type de
modification dans le document actif de l’utilisateur, dans d’autres documents
ouverts ou dans tout document HTML situés sur un disque local. Les commandes
peuvent insérer, supprimer ou réorganiser les balises et les attributs HTML, les
commentaires et le texte.
Les commandes sont des fichiers HTML. La balise BODY d’un fichier de
commande peut contenir un formulaire HTML acceptant des options pour la
commande (par exemple, le tri des éléments d’un tableau et la colonne de
référence du tri). La balise HEAD d’un fichier de commande contient des fonctions
JavaScript qui traitent les entrées de formulaire de la balise BODY et contrôlent les
modifications apportées au document de l’utilisateur.
Fonctionnement des commandes
Lorsque l’utilisateur clique sur un menu contenant une commande, la chaîne
d’événements suivante se produit :
1
Dreamweaver appelle la fonction canAcceptCommand(), si elle est définie, dans
chacun des fichiers de commande référencés dans le menu pour vérifier si cette
commande correspond à l’élément sélectionné. Si canAcceptCommand() renvoie
FALSE, alors la commande est estompée dans le menu.
2
L’utilisateur sélectionne une commande dans le menu.
3
Dreamweaver appelle la fonction receiveArguments(), si elle est définie, dans le
fichier de commande sélectionné afin de permettre à la commande de traiter
tous les arguments passés depuis la fonction dreamweaver.runCommand().
253
000ExtendingDWU.book Page 254 Thursday, June 8, 2000 3:38 PM
4
Dreamweaver appelle la fonction commandButtons(), si elle est définie, pour
identifier les boutons qui figurent dans la partie droite de la boîte de dialogue
des options et le code qui doit être exécuté lorsque l’utilisateur clique sur ces
boutons.
5
Dreamweaver recherche la balise FORM dans le fichier de commande. S’il existe
un formulaire, Dreamweaver appelle la fonction windowDimensions() pour
identifier la taille de la boîte de dialogue des options qui contient les éléments
BODY du fichier. Si la fonction windowDimensions() n’est pas définie, la taille de la
boîte de dialogue est déterminée automatiquement.
6
Si la balise BODY du fichier de commande contient le gestionnaire onLoad,
Dreamweaver l’exécute (que la boîte de dialogue soit affichée ou non). Si
aucune boîte de dialogue ne s’affiche, les étapes restantes ne s’exécutent pas.
7
L’utilisateur sélectionne les options de la commande. Dreamweaver exécute les
gestionnaires d’événements associés aux champs du formulaire au fur et à
mesure que l’utilisateur les rencontre.
8
L’utilisateur clique sur l’un des boutons définis par la fonction
commandButtons().
9
Dreamweaver exécute le code associé au bouton sur lequel l’utilisateur a cliqué.
10
La boîte de dialogue reste affichée jusqu’à ce que l’un des scripts de la
commande appelle la fonction window.close().
API de commande
L’API de commande contient quatre fonctions personnalisées qui sont toutes
facultatives. Les fonctions de l’API de commande diffèrent des fonctions de l’API
JavaScript principale sur trois points :
Elles ne sont pas des méthodes de l’objet dreamweaver, dom ou site.
Elles ne sont significatives que dans le contexte des fichiers de commande. En
d’autres termes, Dreamweaver n’appelle automatiquement la fonction
commandButtons() que si elle est définie dans un fichier de commande ou de
commande de menu, tandis que dans tout autre fichier d’extension, une
fonction nommée commandButtons() se comporte comme une fonction
utilisateur et vous devez l’appeler explicitement.
Il vous incombe d’écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l’opposé de celui des fonctions
de l’API principale dans laquelle vous appelez les fonctions, leur transmettez
des arguments, puis Dreamweaver génère des valeurs renvoyées, le cas échéant.
Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions et leur
transmet des arguments, puis vous générez des valeurs renvoyées, le cas échéant.
254
Chapitre 11
000ExtendingDWU.book Page 255 Thursday, June 8, 2000 3:38 PM
canAcceptCommand()
Description
Indique si la commande est appropriée pour la sélection en cours.
Remarque : ne définissez la fonction canAcceptCommand() que s’il existe au moins un cas
où elle retourne la valeur FALSE. Si cette fonction n’est pas définie, la commande est
considérée comme appropriée ; cette supposition permet de gagner du temps et d’améliorer
les performances.
Arguments
Aucun.
Renvoie
TRUE si la commande est appropriée, sinon FALSE, auquel cas la commande est
estompée dans le menu.
Exemple
Dans l’exemple suivant, la fonction canAcceptCommand() rend la commande
disponible uniquement lorsque la sélection correspond à un tableau :
function canAcceptCommand(){
var selArr=dreamweaver.getSelection();
var selObj=dreamweaver.offsetsToNode(selArr[0],selArr[1]);
return (selObj.nodeType == Node.ELEMENT_NODE && selObj.tagName=="TABLE");
}
commandButtons()
Description
Définit les boutons devant figurer dans la partie droite de la boîte de dialogue des
options et leur comportement lorsque l’utilisateur clique dessus. Si cette fonction
n’est pas définie, aucun bouton n’apparaît et la balise BODY du fichier de
commande s’étend pour remplir l’ensemble de la boîte de dialogue.
Arguments
Aucun.
Renvoie
Tableau contenant un nombre pair d’éléments. Le premier élément est une chaîne
contenant le libellé du premier bouton. Le second élément est une chaîne de code
JavaScript définissant le comportement du premier bouton lorsque l’utilisateur
clique dessus. Les autres paires d’éléments définissent les boutons supplémentaires
de la même manière.
Exemple
Dans l’exemple suivant, la fonction commandButtons() définit trois boutons : OK,
Annuler et Aide.
function commandButtons(){
return new Array("OK","doCommand()","Cancel","window.close()","Help","showHelp()");
}
receiveArguments()
Description
Traite tous les arguments transmis depuis l’option de menu.
Arguments
{arg1}, {arg2},...{argN}
Commandes
255
000ExtendingDWU.book Page 256 Thursday, June 8, 2000 3:38 PM
Si l’attribut arguments est défini pour une balise menuitem, la valeur de l’attribut est
transmise à la fonction receiveArguments() sous forme d’un ou plusieurs arguments.
L’attribut arguments permet de distinguer entre deux éléments de menu appelant la
même commande de menu.
Renvoie
Aucune.
windowDimensions()
Description
Définit des dimensions spécifiques pour la boîte de dialogue des paramètres afin
d’accélérer l’affichage. Si cette fonction n’est pas définie, les dimensions de la
fenêtre sont calculées automatiquement.
Remarque : ne définissez cette fonction que si vous souhaitez utiliser une boîte de dialogue
d’options ayant des dimensions supérieures à 640 x 480 pixels.
Arguments
platform
La valeur de l’argument est soit "macintosh", soit "windows", selon la plate-forme
utilisée par l’utilisateur.
Renvoie
Une chaîne de caractères au format "widthInPixels,heightInPixels".
Les dimensions renvoyées sont inférieures à la taille totale de la fenêtre de la boîte
de dialogue parce qu’elles n’incluent pas la zone des boutons OK et Annuler. Si les
dimensions renvoyées ne permettent pas de faire apparaître toutes les options, des
barres de défilement s’affichent.
Exemple
Dans l’exemple suivant, la fonction windowDimensions() fixe les dimensions de la
boîte de dialogue des paramètres à 648 x 520 pixels :
function windowDimensions(platform){
return "648,520";
}
Exemple de commande simple
La commande suivante convertit tous les caractères du texte sélectionné en
minuscules. Cette commande est très simple ; elle n’affiche pas de boîte de
dialogue, de sorte que la fonction commandButtons() n’est pas définie.
<HTML>
<HEAD>
<TITLE>Make Lower Case</TITLE>
<SCRIPT LANGUAGE="javascript">
256
Chapitre 11
000ExtendingDWU.book Page 257 Thursday, June 8, 2000 3:38 PM
function canAcceptCommand(){
// Get the DOM of the current document
var theDOM = dw.getDocumentDOM();
// Get the offsets of the selection
var theSel = theDOM.getSelection();
// Get the selected node
var theSelNode = theDOM.getSelectedNode();
// Get the children of the selected node
var theChildren = theSelNode.childNodes;
// If the selection is not an insertion point, and
// either the selection or its first child is a
// text node, return TRUE.
return (theSel[0] != theSel[1] && (theSelNode.nodeType == Node.TEXT_NODE ||
theChildren[0].nodeType == Node.TEXT_NODE));
}
function changeToLowerCase() {
// Get the DOM again
var theDOM = dw.getDocumentDOM();
// Get the offsets of the selection
var theSel = theDOM.getSelection();
// Get the outerHTML of the HTML tag (the
// entire contents of the document)
var theDocEl = theDOM.documentElement;
var theWholeDoc = theDocEl.outerHTML;
// Extract the selection
var selText = theWholeDoc.substring(theSel[0],theSel[1]);
// Re-insert the modified selection into the document
theDocEl.outerHTML = theWholeDoc.substring(0,theSel[0]) + selText.toLowerCase() +
theWholeDoc.substring(theSel[1]);
// Set the selection back to where it was when you
// started
theDOM.setSelection(theSel[0],theSel[1]);
}
</SCRIPT>
</HEAD>
<BODY onLoad="changeToLowerCase()">
<! -- The function that does all the work in this command is called from the onLoad handler
on the BODY tag. There is no form in the BODY, so no dialog box appears. -->
</BODY>
</HTML>
Commandes
257
000ExtendingDWU.book Page 258 Thursday, June 8, 2000 3:38 PM
Ajout de commandes au menu Commandes
Dreamweaver ajoute automatiquement tous les fichiers se trouvant dans l’un des
sous-dossiers du dossier Configuration/Objects au bas de la liste d’options du
menu Commandes. Pour empêcher qu’une commande ne s’affiche dans le menu
Commandes, placez le commentaire suivant sur la première ligne du fichier :
<!-- MENU-LOCATION=NONE -->
Dans Dreamweaver 1 et 2, si vous souhaitiez contrôler la position ou le texte
associé à une commande, vous pouviez l’ajouter explicitement au fichier
CommandMenu.htm. Dans Dreamweaver 3, ce fichier a été remplacé par le
fichier menus.xml qui contrôle l’ensemble de la structure des menus de
Dreamweaver. Pour plus d’informations sur la façon de modifier le fichier
menus.xml, reportez-vous au chapitre 16, “Personnalisation de Dreamweaver” du
manuel Utilisation de Dreamweaver.
258
Chapitre 11
000ExtendingDWU.book Page 259 Thursday, June 8, 2000 3:38 PM
12
CHAPITRE 12
Commandes de menu
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dreamweaver 3 présente un nouveau type de commande permettant une plus
grande souplesse des menus ainsi que la création de menus dynamiques. A l’instar
des commandes ordinaires, les commandes de menu permettent d’exécuter
presque n’importe quel type de modification dans le document en cours de
l’utilisateur, dans d’autres documents ouverts ou dans tout document HTML
situés sur un disque local. L’API des commandes de menu se développe à partir de
l’API des commandes ordinaires pour accomplir plusieurs tâches liées à l’affichage
et à l’appel de la commande à partir du système de menus.
Remarque : du fait que les commandes de menu sont directement liées au système de
menus dans Dreamweaver, il est recommandé de lire le chapitre 16, « Personnalisation de
Dreamweaver » du manuel Utilisation de Dreamweaver avant de poursuivre.
Les commandes de menu sont des fichiers HTML. La balise BODY d’un fichier de
commande de menu peut contenir un formulaire HTML acceptant des options
pour la commande (par exemple, le tri des éléments d’un tableau et la colonne de
référence du tri). La balise HEAD d’un fichier de commande de menu contient des
fonctions JavaScript qui traitent les entrées de formulaire de la balise BODY et
contrôlent les modifications apportées au document de l’utilisateur.
Les commandes de menu sont stockées dans le dossier Configuration/Menus du
dossier de l’application Dreamweaver.
Fonctionnement des commandes de menu
Lorsque l’utilisateur clique sur un menu contenant une commande de menu, la
chaîne d’événements suivante se produit :
1
Si l’une des balises menuitem du menu contient l’attribut dynamic, Dreamweaver
appelle la fonction getDynamicContent() dans le fichier de commande de menu
associé afin de renseigner le menu.
259
000ExtendingDWU.book Page 260 Thursday, June 8, 2000 3:38 PM
260
Chapitre 12
2
Dreamweaver appelle la fonction canAcceptCommand() dans chacun des fichiers
de commande de menu référencés dans le menu pour vérifier si la commande
correspond à l’élément sélectionné. Si canAcceptCommand() renvoie FALSE, alors
l’option de menu est estompée. Si la fonction canAcceptCommand() renvoie TRUE
ou si elle n’est pas définie, Dreamweaver appelle la fonction isCommandChecked()
pour déterminer si une coche doit apparaître à côté de l’option de menu. Si la
fonction isCommandChecked() n’est pas définie, aucune coche n’apparaît.
3
Dreamweaver appelle la fonction setMenuText() pour déterminer le texte devant
s’afficher dans le menu. Si la fonction setMenuText() n’est pas définie,
Dreamweaver utilise le texte qui est spécifié dans la balise menuitem.
4
L’utilisateur sélectionne une option dans le menu.
5
Dreamweaver appelle la fonction receiveArguments(), si elle est définie, dans le
fichier de commande de menu sélectionné afin de permettre à la commande de
traiter tous les arguments transmis depuis l’option de menu.
6
Dreamweaver appelle la fonction commandButtons(), si elle est définie, pour
identifier les boutons qui figurent dans la partie droite de la boîte de dialogue
des options et le code qui doit être exécuté lorsque l’utilisateur clique sur ces
boutons.
7
Dreamweaver recherche une balise FORM dans le fichier de commande de
menu. S’il existe un formulaire, Dreamweaver appelle la fonction
windowDimensions() pour identifier la taille de la boîte de dialogue des options
qui contient les éléments BODY du fichier. Si la fonction windowDimensions()
n’est pas définie, la taille de la boîte de dialogue est déterminée
automatiquement.
8
Si la balise BODY du fichier de commande de menu contient le gestionnaire
onLoad, Dreamweaver exécute le code associé à ce gestionnaire (que la boîte de
dialogue soit affichée ou non). Si aucune boîte de dialogue ne s’affiche, les
étapes restantes ne s’exécutent pas.
9
L’utilisateur sélectionne des options dans la boîte de dialogue. Dreamweaver
exécute les gestionnaires d’événements associés aux champs du formulaire au
fur et à mesure que l’utilisateur les rencontre.
10
L’utilisateur clique sur l’un des boutons définis par la fonction
commandButtons().
11
Dreamweaver exécute le code associé au bouton sur lequel l’utilisateur a cliqué.
12
La boîte de dialogue reste affichée jusqu’à ce que l’un des scripts de la
commande de menu appelle la fonction window.close().
000ExtendingDWU.book Page 261 Thursday, June 8, 2000 3:38 PM
API de commande de menu
L’API de commande de menu contient sept fonctions personnalisées qui sont
toutes facultatives. Les fonctions de l’API de commande de menu diffèrent des
fonctions de l’API JavaScript principale sur trois points :
Elles ne sont pas des méthodes de l’objet dreamweaver, dom ou site.
Elles ne sont significatives que dans le contexte des fichiers de commande de
menu. En d’autres termes, Dreamweaver n’appelle automatiquement la
fonction getDynamicContent() que si elle est définie dans un fichier de commande
de menu, tandis que dans tout autre fichier d’extension, une fonction nommée
getDynamicContent() se comporte comme une fonction utilisateur et vous devez
l’appeler explicitement.
Il vous incombe d’écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l’opposé de celui des fonctions
de l’API principale dans laquelle vous appelez les fonctions, leur transmettez
des arguments, puis Dreamweaver génère des valeurs renvoyées, le cas échéant.
Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions et leur
transmet des arguments, puis vous générez des valeurs renvoyées, le cas échéant.
canAcceptCommand()
Description
Détermine si l’option de menu doit être active ou estompée.
Arguments
{arg1}, {arg2},...{argN}}
Si l’attribut arguments est défini pour une balise menuitem, la valeur de l’attribut est
transmise à la fonction canAcceptCommand() (et aux fonctions isCommandChecked(),
receiveArguments() et setMenuText()) sous forme d’un ou plusieurs arguments.
L’attribut arguments permet de distinguer entre deux éléments de menu appelant la
même commande de menu.
Renvoie
Valeur booléenne indiquant si l’élément de menu doit être activé.
commandButtons()
Description
Définit les boutons devant figurer dans la partie droite de la boîte de dialogue des
options et leur comportement lorsque l’utilisateur clique dessus. Si cette fonction
n’est pas définie, aucun bouton n’apparaît et la balise BODY du fichier de
commande s’étend pour remplir l’ensemble de la boîte de dialogue.
Arguments
Aucun.
Renvoie
Tableau contenant un nombre pair d’éléments. Le premier élément est une chaîne
contenant le libellé du premier bouton. Le second élément est une chaîne de code
JavaScript définissant le comportement du premier bouton lorsque l’utilisateur
clique dessus. Les autres paires d’éléments définissent les boutons supplémentaires
de la même manière.
Commandes de menu
261
000ExtendingDWU.book Page 262 Thursday, June 8, 2000 3:38 PM
Exemple
Dans l’exemple suivant, la fonction commandButtons() définit trois boutons : OK,
Annuler et Aide.
function commandButtons(){
return new Array("OK","doCommand()","Cancel","window.close()","Help","showHelp()");
}
getDynamicContent()
Description
Extrait le contenu de la partie dynamique du menu.
Arguments
menuID
L’argument est la valeur de l’attribut id dans la balise menuitem associée à l’élément
de menu.
Renvoie
Tableau de chaînes. Chaque chaîne contient le nom d’un élément de menu et son
ID unique, séparés par un point-virgule. Si la fonction renvoie la valeur NULL,
aucune modification n’est apportée au menu.
Exemple
Dans l’exemple suivant, la fonction getDynamicContent() renvoie un tableau de
quatre éléments de menu (My Menu Item 1, My Menu Item 2, etc) :
function getDynamicContent(){
var stringArray= new Array();
var i=0;
var numItems = 4;
for (i=0; i<numItems;i++)
stringArray[i] = new String("My Menu Item " + i + ";id=" + i);
return stringArray;
}
isCommandChecked()
Description
Détermine si une coche doit apparaître à côté de l’option de menu.
Arguments
{arg1}, {arg2},...{argN}
Si l’attribut arguments est défini pour une balise menuitem, la valeur de cet attribut
est transmise à la fonction isCommandChecked() (et aux fonctions
canAcceptCommand(), receiveArguments() et setMenuText()) sous forme d’un ou
plusieurs arguments. L’attribut arguments permet de distinguer entre deux
éléments de menu appelant la même commande de menu.
Renvoie
Valeur booléenne indiquant si une coche doit apparaître à côté de l’option de
menu.
receiveArguments()
262
Description
Traite tous les arguments transmis depuis l’option de menu.
Arguments
{arg1}, {arg2},...{argN}
Chapitre 12
000ExtendingDWU.book Page 263 Thursday, June 8, 2000 3:38 PM
Si l’attribut arguments est défini pour une balise menuitem, la valeur de cet attribut
est transmise à la fonction receiveArguments() (et aux fonctions canAcceptCommand(),
isCommandChecked() et setMenuText()) sous forme d’un ou plusieurs arguments.
L’attribut arguments permet de distinguer entre deux éléments de menu appelant la
même commande de menu.
Renvoie
Aucune.
setMenuText()
Description
Spécifie le texte devant s’afficher dans le menu.
Remarque : n’utilisez pas cette fonction si vous utilisez getDynamicContent().
Arguments
{arg1}, {arg2},...{argN}
Si l’attribut arguments est défini pour une balise menuitem, la valeur de cet attribut
est transmise à la fonction setMenuText() (et aux fonctions canAcceptCommand(),
isCommandChecked() et receiveArguments()) sous forme d’un ou plusieurs arguments.
L’attribut arguments permet de distinguer entre deux éléments de menu appelant la
même commande de menu.
Renvoie
La chaîne devant apparaître dans le menu.
windowDimensions()
Description
Définit des dimensions spécifiques pour la boîte de dialogue des paramètres afin
d’accélérer l’affichage. Si cette fonction n’est pas définie, les dimensions de la
fenêtre sont calculées automatiquement.
Remarque : ne définissez cette fonction que si vous souhaitez utiliser une boîte de dialogue
d’options ayant des dimensions supérieures à 640 x 480 pixels.
Arguments
platform
La valeur de l’argument est soit "macintosh", soit "windows", selon la plate-forme
utilisée par l’utilisateur.
Renvoie
Une chaîne de caractères au format "widthInPixels,heightInPixels".
Les dimensions renvoyées sont inférieures à la taille totale de la fenêtre de la boîte
de dialogue parce qu’elles n’incluent pas la zone des boutons OK et Annuler. Si les
dimensions renvoyées ne permettent pas de faire apparaître toutes les options, des
barres de défilement s’affichent.
Exemple
Dans l’exemple suivant, la fonction windowDimensions() fixe les dimensions de la
boîte de dialogue des paramètres à 648 x 520 pixels :
function windowDimensions(platform){
return "648,520";
}
Commandes de menu
263
000ExtendingDWU.book Page 264 Thursday, June 8, 2000 3:38 PM
Exemple de commande de menu simple
La commande de menu suivante est associée à deux éléments de menu : Annuler
et Rétablir. Elle vérifie l’attribut arguments de la balise menuitem et exécute une
opération dw.undo() ou dw.redo() en fonction de la valeur du premier (et unique)
argument.
<HTML>
<HEAD>
<!-- Copyright 1999 Macromedia, Inc. All rights reserved. -->
<TITLE>Edit Clipboard</TITLE>
<SCRIPT LANGUAGE="javascript">
function receiveArguments()
{
if (arguments.length != 1) return;
var whatToDo = arguments[0];
if (whatToDo == "undo")
{
dw.undo();
}
else if (whatToDo == "redo")
{
dw.redo();
}
}
function canAcceptCommand()
{
var selarray;
if (arguments.length != 1) return false;
var bResult = false;
var whatToDo = arguments[0];
if (whatToDo == "undo")
{
bResult = dw.canUndo();
}
else if (whatToDo == "redo")
{
bResult = dw.canRedo();
}
return bResult;
}
264
Chapitre 12
000ExtendingDWU.book Page 265 Thursday, June 8, 2000 3:38 PM
function setMenuText()
{
if (arguments.length != 1) return "";
var whatToDo = arguments[0];
if (whatToDo == "undo")
return dw.getUndoText();
else if (whatToDo == "redo")
return dw.getRedoText();
else return "";
}
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
Dans cette commande, la fonction receiveArguments() traite les arguments et
exécute la commande, mais il n’est pas nécessaire qu’il en soit ainsi. Des
commandes de menu plus complexes peuvent appeler des fonctions différentes
pour exécuter la commande. Par exemple, le code suivant vérifie si le premier
argument est "foo" ; si c’est le cas, il appelle la fonction doOperationX() et lui
transmet le deuxième argument. Si le premier argument est "bar", le code appelle la
fonction doOperationY() et lui transmet le deuxième argument. La fonction
doOperationX() ou doOperationY() est chargée de l’exécution de la commande.
function receiveArguments(){
if (arguments.length != 2) return;
var whatToDo = arguments[0];
if (whatToDo == "foo"){
doOperationX(arguments[1]);
}else if (whatToDo == "bar"){
doOperationX(arguments[1]);
}
}
Commandes de menu
265
000ExtendingDWU.book Page 266 Thursday, June 8, 2000 3:38 PM
Exemple de menu dynamique simple
La commande de menu suivante a deux actions : elle génère le sous-menu Aperçu
dans le navigateur, puis elle lance le fichier en cours (ou les fichiers sélectionnés
dans la fenêtre Site) dans le navigateur que l’utilisateur sélectionne dans le sousmenu.
<HTML>
<HEAD>
<!-- Copyright 1999 Macromedia, Inc. All rights reserved. -->
<TITLE>Preview Browsers</TITLE>
<SCRIPT LANGUAGE="javascript">
<!-// getDynamicContent returns the contents of a dynamically generated menu.
// returns an array of strings to be placed in the menu, with a unique
// identifier for each item separated from the menu string by a semicolon.
//
// return null from this routine to indicate that you are not adding any
// items to the menu
function getDynamicContent(itemID)
{
var browsers = null;
var PIB = null;
var i;
var j=0;
var bUpdate = dw.getMenuNeedsUpdating(itemID);
if (bUpdate)
{
browsers = new Array();
PIB = dw.getBrowserList();
// each browser pair has the name of the browser and the path that leads
// to the application on disk. We only put the names in the menus.
for (i=0; i<PIB.length; i=i+2)
{
browsers[j] = new String(PIB[i]);
if (dw.getPrimaryBrowser() == PIB[i+1])
browsers[j] += "\tF12";
if (navigator.platform == "MacPPC")
{
if (dw.getSecondaryBrowser() == PIB[i+1])
browsers[j] += "\t ?F12";
}
else
{
if (dw.getSecondaryBrowser() == PIB[i+1])
browsers[j] += "\t Ctrl+F12";
}
browsers[j] += ";id=’"+PIB[i]+"’";
j = j+1;
266
Chapitre 12
000ExtendingDWU.book Page 267 Thursday, June 8, 2000 3:38 PM
}
dw.notifyMenuUpdated(itemID, "dw.getBrowserList()");
}
return browsers;
}
function canAcceptCommand()
{
var bHaveDocument;
if (dw.getFocus() == ‘site’)
bHaveDocument = site.getSelection().length > 0;
else
bHaveDocument = dw.getDocumentDOM(’document’) != null;
return bHaveDocument;
}
function receiveArguments()
{
var theBrowser = arguments[0];
if (dw.getFocus() == ‘site’)
dw.browseDocument(site.getSelection(),theBrowser);
else
dw.browseDocument(dw.getDocumentPath(’document’),theBrowser);
}
// -->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
Commandes de menu
267
000ExtendingDWU.book Page 268 Thursday, June 8, 2000 3:38 PM
268
Chapitre 12
000ExtendingDWU.book Page 269 Thursday, June 8, 2000 3:38 PM
13
CHAPITRE 13
Inspecteurs de propriétés
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’inspecteur de propriétés est probablement la palette flottante la plus connue de
l’interface Dreamweaver. Elle est indispensable pour définir, vérifier et modifier le
nom, les dimensions, les mises en forme et d’autres attributs de la sélection ; elle
permet également de lancer des éditeurs internes et externes pour l’élément
sélectionné.
Dreamweaver intègre déjà plusieurs interfaces compatibles avec l’inspecteur de
propriétés permettant de définir des propriétés pour de nombreuses balises
HTML standard. A l’aide des fichiers d’inspecteur de propriétés personnalisés,
vous pouvez ignorer ces interfaces intégrées ou en créer de nouvelles pour
contrôler les balises personnalisées.
Les fichiers d’inspecteur de propriétés sont des fichiers HTML qui se trouvent
dans le dossier Configuration/Inspectors du dossier de l’application Dreamweaver.
La première ligne d’un fichier d’inspecteur de propriétés (la ligne située au-dessus
de la balise HTML de début) doit être un commentaire respectant la syntaxe
suivante :
<!-- tag:tagNameOrKeyword,priority:1to10,selection:exactOrWithin,hline,vline -->
où :
tagNameOrKeyword est la balise à contrôler ou l’un des mots clés suivants :
*COMMENT* (pour les commentaires), *LOCKED* (pour les régions verrouillées)
ou *ASP* (pour les balises ASP).
1to10 est la priorité du fichier d’inspecteur de propriétés : 1 indique que cet
inspecteur ne doit être utilisé que si aucun autre inspecteur n’est en mesure de
contrôler l’élément sélectionné ; 10 indique que cet inspecteur a priorité sur
tous les autres inspecteurs susceptibles de contrôler l’élément sélectionné.
exactOrWithin indique si l’élément sélectionné peut se trouver à l’intérieur de la
balise (within) ou s’il doit contenir la balise exactement (exact).
269
000ExtendingDWU.book Page 270 Thursday, June 8, 2000 3:38 PM
hline (facultatif ) indique qu’une ligne horizontale grise doit apparaître entre les
moitiés supérieure et inférieure de l’inspecteur en mode développé.
vline (facultatif ) indique qu’une ligne verticale grise doit apparaître entre le
champ du nom de la balise et le reste des propriétés dans l’inspecteur (voir
l’inspecteur de propriétés d’image fourni en exemple).
serverModel (facultatif ) indique le modèle de serveur de l’inspecteur de
propriétés. Si celui-ci diffère du modèle de serveur du document, l’inspecteur
de propriétés n’est pas utilisé pour afficher les propriétés de la sélection actuelle.
Le commentaire ci-dessous convient à un inspecteur conçu pour contrôler la
balise HAPPY :
<!-- tag:HAPPY,priority:8,selection:exact,hline,vline, serverModel:ASP -->
La balise BODY d’un fichier d’inspecteur de propriétés contient un formulaire
HTML. Cependant, au lieu d’afficher le contenu du formulaire dans une boîte de
dialogue, Dreamweaver utilise le formulaire pour définir les zones de saisie et la
mise en forme de l’inspecteur.
Fonctionnement des fichiers d’inspecteur de
propriétés
Au démarrage, Dreamweaver lit la première ligne de chaque fichier .htm et .html
du dossier Configuration/Inspectors et recherche la chaîne de commentaire qui
définit le type, la priorité et le type de sélection d’un inspecteur de propriétés. Les
fichiers ne présentant pas ce commentaire en première ligne sont ignorés.
Lorsque l’utilisateur effectue une sélection dans Dreamweaver ou déplace le point
d’insertion vers un emplacement différent, la chaîne d’événements suivante se
produit :
270
Chapitre 13
1
Dreamweaver recherche tous les inspecteurs ayant le type de sélection within.
2
Si cette recherche aboutit, Dreamweaver remonte l’arborescence du document
à partir de la balise actuellement sélectionnée pour vérifier s’il existe des
inspecteurs pour les balises entourant la sélection. Si, et seulement si, aucun
inspecteur within n’est trouvé, Dreamweaver recherche des inspecteurs ayant le
type de sélection exact.
3
Pour la première balise trouvée à laquelle correspond un ou plusieurs
inspecteurs, Dreamweaver appelle la fonction canInspectSelection() de chaque
inspecteur. Si cette fonction renvoie la valeur FALSE, Dreamweaver ne considère
plus l’inspecteur comme candidat potentiel pour contrôler la sélection.
4
S’il reste plusieurs inspecteurs potentiels après l’appel de la fonction
canInspectSelection(), Dreamweaver les trie par priorité.
5
Si plusieurs inspecteurs potentiels ont la même priorité, Dreamweaver en
choisit un par ordre alphabétique.
000ExtendingDWU.book Page 271 Thursday, June 8, 2000 3:38 PM
6
L’inspecteur choisi s’affiche dans la palette flottante des inspecteurs de
propriétés. Si le fichier d’inspecteur de propriétés définit la fonction
displayHelp(), une petite icône ? (Aide) s’affiche dans le coin supérieur droit de
l’inspecteur.
7
Dreamweaver appelle la fonction inspectSelection() pour recueillir des
informations sur la sélection en cours et renseigner les champs de l’inspecteur.
8
Les gestionnaires d’événements associés aux champs dans l’interface
d’inspecteur de propriétés s’exécutent au fur et à mesure que l’utilisateur les
rencontre. (Par exemple, vous pouvez utiliser un événement onBlur qui appelle
la fonction setAttribute() pour affecter à un attribut la valeur que l’utilisateur
vient d’entrer.)
API d’inspecteur de propriétés
L’API d’inspecteur de propriétés comporte trois fonctions personnalisées dont
deux (canInspectSelection() et inspectSelection()) sont obligatoires. Les fonctions de
l’API d’inspecteur de propriétés diffèrent des fonctions de l’API JavaScript
principale sur trois points :
Elles ne sont pas des méthodes de l’objet dreamweaver, dom ou site.
Elles ne sont significatives que dans le contexte des fichiers d’inspecteur de
propriétés. En d’autres termes, Dreamweaver n’appelle automatiquement la
fonction canInspectSelection() que si elle est définie dans un fichier d’inspecteur
de propriétés, tandis que dans tout autre fichier d’extension, une fonction
nommée canInspectSelection() se comporte comme une fonction utilisateur et
vous devez l’appeler explicitement.
Il vous incombe d’écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l’opposé de celui des fonctions
de l’API principale dans laquelle vous appelez les fonctions, leur transmettez
des arguments, puis Dreamweaver génère des valeurs renvoyées, le cas échéant.
Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions et leur
transmet des arguments, puis vous générez des valeurs renvoyées, le cas échéant.
canInspectSelection()
Description
Indique si l’inspecteur de propriétés est adapté à la sélection en cours.
Arguments
Aucun.
Utilisez dom.getSelectedNode() pour obtenir la sélection en cours sous la forme d’un
objet JavaScript.
Renvoie
TRUE
si l’inspecteur peut contrôler la sélection en cours ; sinon, FALSE.
Inspecteurs de propriétés
271
000ExtendingDWU.book Page 272 Thursday, June 8, 2000 3:38 PM
Exemple
Dans l’exemple ci-dessous, la fonction canInspectSelection() renvoie TRUE si la
sélection contient l’attribut CLASSID et que la valeur de cet attribut est
clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 (l’ID de classe de Flash
Player) :
function canInspectSelection(){
var theDOM = dw.getDocumentDOM();
var currSel = theDOM.getSelection();
var theObj = theDOM.offsetsToNode(currSel[0],currSel[1]);
return (theObj.nodeType == Node.ELEMENT_NODE && theObj.hasAttribute("classid") &&
theObj.getAttribute("classid").toLowerCase()=="clsid:D27CDB6E-AE6D-11cf-96B8444553540000");
}
displayHelp()
Description
Si cette fonction est définie, une icône ? (Aide) s’affiche dans le coin supérieur
droit de l’inspecteur de propriétés. Cette fonction est appelée lorsque l’utilisateur
clique sur cette icône.
Arguments
Aucun.
Renvoie
Aucune.
Exemple
Dans l’exemple ci-dessous, la fonction displayHelp() ouvre dans une fenêtre de
navigateur un fichier contenant une description des champs de l’inspecteur de
propriétés :
function displayHelp(){
dreamweaver.browseDocument(’http://www.hooha.com/dw/inspectors/inspHelp.html’);
}
inspectSelection()
Description
Actualise le contenu des champs de saisie utilisateur en fonction des attributs de la
sélection en cours.
Arguments
maxOrMin
L’argument est soit max, soit min, selon que l’inspecteur est en mode développé ou
réduit.
Renvoie
Aucune.
Exemple
Dans l’exemple ci-dessous, la fonction inspectSelection() extrait la valeur de
l’attribut CONTENT et l’utilise pour renseigner un champ du formulaire appelé
keywords :
function inspectSelection(){
var currSel = dreamweaver.getSelection();
var theObj = dreamweaver.offsetsToNode(currSel[0],currSel[1]);
document.forms[0].keywords.value = theObj.getAttribute("content");
}
272
Chapitre 13
000ExtendingDWU.book Page 273 Thursday, June 8, 2000 3:38 PM
Exemple d’inspecteur de propriétés simple
L’inspecteur de propriétés ci-dessous contrôle une balise fictive appelée INTJ. La
balise INTJ est vide (c’est-à-dire qu’elle ne comporte pas de balise de fin), ce qui
signifie que son type de sélection est exact. Aussi longtemps que la sélection
correspond exactement à une balise INTJ, l’inspecteur doit s’afficher de façon à ce
que la fonction canInspectSelection() renvoie la valeur TRUE à chaque fois. Si vous
souhaitez qu’un inspecteur différent s’affiche en fonction de la valeur de l’attribut
TYPE de la balise INTJ, par exemple, la fonction canInspectSelection() doit vérifier la
valeur de l’attribut TYPE pour déterminer quel est l’inspecteur approprié. C’est
ainsi que les inspecteurs de mots-clés et de descriptions fonctionnent, étant donné
que « keywords » et « description » ne sont pas des balises mais des valeurs de
l’attribut NAME de la balise META.
<!-- tag:INTJ,priority:5,selection:exact,vline,hline -->
<HTML>
<HEAD>
<TITLE>Interjection Inspector</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function canInspectSelection(){
return true;
}
function inspectSelection(){
// Get the DOM of the current document
var theDOM = dw.getDocumentDOM();
// Get the selected node
var theObj = theDOM.getSelectedNode();
// Get the value of the TYPE attribute on the INTJ tag
var theType = theObj.getAttribute(’type’);
// Initialize a variable called typeIndex to -1. This will be
// used to store the menu index that corresponds to
// the value of the TYPE attribute
var typeIndex = -1;
// If there was a TYPE attribute
if (theType){
// If the value of TYPE is "jeepers", set typeIndex to 0
if (theType.toLowerCase() == "jeepers"){
typeIndex = 0;
// If the value of TYPE is "jinkies", set typeIndex to 1
}else if (theType.toLowerCase() == "jinkies"){
typeIndex = 1;
// If the value of TYPE is "zoinks", set typeIndex to 2
}else if (theType.toLowerCase() == "zoinks"){
typeIndex = 2;
}
}
// If the value of the TYPE attribute was "jeepers",
// "jinkies", or "zoinks", choose the corresponding
// option from the pop-up menu in the interface
if (typeIndex != -1){
Inspecteurs de propriétés
273
000ExtendingDWU.book Page 274 Thursday, June 8, 2000 3:38 PM
document.topLayer.document.topLayerForm.intType.selectedIndex = typeIndex;
}
}
function setInterjectionTag(){
// Get the DOM of the current document
var theDOM = dw.getDocumentDOM();
// Get the selected node
var theObj = theDOM.getSelectedNode();
// Get the index of the selected option in the pop-up menu
// in the interface
var typeIndex = document.topLayer.document.topLayerForm.intType.selectedIndex;
// Get the value of the selected option in the pop-up menu
// in the interface
var theType =
document.topLayer.document.topLayerForm.intType.options[typeIndex].value;
// Set the value of the TYPE attribute to theType
theObj.setAttribute(’type’,theType);
}
</SCRIPT>
</HEAD>
<BODY>
<SPAN ID="image" STYLE="position:absolute; width:23px; height:17px; z-index:16; left:
3px; top: 2px">
<IMG SRC="interjection.gif" WIDTH="36" HEIGHT="36" NAME="interjectionImage"></
SPAN>
<SPAN ID="label" STYLE="position:absolute; width:23px; height:17px; z-index:16; left:
44px; top: 5px">Interjection</SPAN>
<!-- If your form fields are in different layers, you must create a separate form inside each
layer and reference it as shown in the inspectSelection() and setInterjectionTag() functions
above. -->
<SPAN ID="topLayer" STYLE="position:absolute; z-index:1; left: 125px; top: 3px; width:
431px; height: 32px">
<FORM NAME="topLayerForm">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
<TR>
<TD VALIGN="baseline" ALIGN="right">Type:</TD>
<TD VALIGN="baseline" ALIGN="right">
<SELECT NAME="intType" STYLE="width:86" onChange="setInterjectionTag()">
<OPTION VALUE="jeepers">Jeepers</OPTION>
<OPTION VALUE="jinkies">Jinkies</OPTION>
<OPTION VALUE="zoinks">Zoinks</OPTION>
</SELECT>
</TR>
</TABLE>
</FORM>
</SPAN>
</BODY>
</HTML>
274
Chapitre 13
000ExtendingDWU.book Page 275 Thursday, June 8, 2000 3:38 PM
14
CHAPITRE 14
Palettes flottantes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dans Dreamweaver 3, vous avez désormais la possibilité de créer n’importe quel
type de palette flottante ou d’inspecteur sans tenir compte des limitations de taille
et de mise en forme des inspecteurs de propriétés.
Un inspecteur de propriétés personnalisé doit rester votre premier choix pour
définir les propriétés de la sélection en cours. Toutefois, les palettes flottantes
personnalisées offrent plus d’espace et de souplesse pour afficher des informations
relatives à l’ensemble du document ou à plusieurs sélections.
Dreamweaver possède déjà plusieurs palettes flottantes intégrées accessibles depuis
le menu Fenêtre ; vous pouvez ajouter vos propres palettes à ce menu à l’aide de la
fonction d’extension des menus. Pour plus d’informations sur la façon d’ajouter
des éléments au système de menus, voir le chapitre 16, « Personnalisation de
Dreamweaver », du manuel Utilisation de Dreamweaver.
Les fichiers de palette flottante sont des fichiers HTML qui se trouvent dans le
dossier Configuration/Floaters du dossier de l’application Dreamweaver. La balise
BODY d’un fichier de palette flottante contient un formulaire HTML ; des
gestionnaires d’événements associés aux éléments du formulaire peuvent appeler
un code JavaScript pour effectuer des modifications arbitraires dans le document
en cours.
Fonctionnement des fichiers de palette
flottante
Les palettes flottantes personnalisées peuvent être déplacées, redimensionnées et
leurs onglets peuvent être combinés à l’instar des palettes flottantes intégrées à
Dreamweaver. Les palettes flottantes personnalisées présentent les différences
suivantes par rapport aux palettes flottantes intégrées :
275
000ExtendingDWU.book Page 276 Thursday, June 8, 2000 3:38 PM
Il n’est pas possible d’afficher une icône dans l’onglet d’une palette flottante
personnalisée ; l’onglet affiche toujours le contenu de la balise TITLE de la palette
flottante.
Les palettes flottantes personnalisées s’affichent en gris par défaut. La définition
de l’attribut BGCOLOR dans la balise BODY n’a aucun effet.
Toutes les palettes flottantes personnalisées s’affichent toujours en haut de la
fenêtre du document, ou alors elles flottent derrière cette fenêtre lorsqu’elles
sont inactives, selon le paramétrage de l’option Toutes autres palettes dans la
boîte de dialogue Préférences, catégorie Palettes flottantes.
Les fichiers de palette flottante sont également différents des autres fichiers
d’extension. Contrairement à ce qui se passe pour les autres fichiers d’extension,
Dreamweaver ne charge pas de fichiers de palette flottante en mémoire au
démarrage, sauf si les palettes flottantes étaient affichées au moment où
Dreamweaver a été fermé pour la dernière fois. Si aucune palette flottante n’était
affichée lors de la dernière fermeture de Dreamweaver, les fichiers définissant ces
palettes sont uniquement chargés lorsqu’ils sont référencés à partir de l’une des
fonctions suivantes : dreamweaver.getFloaterVisibility(), dreamweaver.setFloaterVisibility()
ou dreamweaver.toggleFloater().
L’un des fichiers du dossier Configuration appelle
dw.getFloaterVisibility(floaterName), dw.setFloaterVisibility(floaterName) ou
dw.toggleFloater(floaterName).
1
Si l’argument floaterName ne correspond pas à l’un des noms de palette flottante
réservés, Dreamweaver recherche dans le dossier Configuration/Floaters un
fichier nommé floaterName.htm. (Pour une liste complète des noms de palette
flottante réservés, voir la section « dreamweaver.getFloaterVisibility() » à la
page 171.) Si le fichier floaterName.htm est introuvable, Dreamweaver recherche
floaterName.html. Si aucun fichier de ce nom n’est trouvé, aucun autre
événement ne se produit.
2
Si le fichier de palette flottante est chargé pour la première fois, la fonction
initialPosition() est appelée, si elle est définie, pour déterminer la position par
défaut de la palette flottante à l’écran, et la fonction initialTabs() est appelée, si
elle est définie, pour déterminer son groupement d’onglets par défaut.
3
Les fonctions selectionChanged() et documentEdited() sont appelées sur la base de
l’hypothèse que des modifications ont probablement été apportées pendant que
la palette flottante était masquée.
4
Une fois que la palette flottante s’affiche, les événements suivants se
produisent :
Lorsqu’un élément différent est sélectionné, la fonction selectionChanged() est
appelée, si elle est définie.
Lorsque l’utilisateur modifie le document, la fonction documentEdited() est
appelée, si elle est définie.
276
Chapitre 14
000ExtendingDWU.book Page 277 Thursday, June 8, 2000 3:38 PM
Les gestionnaires d’événements associés aux champs dans l’interface de palette
flottante s’exécutent au fur et à mesure que l’utilisateur les rencontre. (Par
exemple, un bouton associé à un gestionnaire d’événements onClick appelant
dw.getDocumentDOM().body.innerHTML=’’ a pour effet, lorsque l’utilisateur clique
dessus, de supprimer tous les éléments situés entre les balises BODY de début et
de fin dans le document.)
5
Lorsque l’utilisateur quitte Dreamweaver, la visibilité, la position et le
groupement d’onglets actuellement définis pour la palette flottante sont
enregistrés. Lorsque l’application Dreamweaver démarre une nouvelle fois, elle
charge les fichiers de palette flottante correspondant à toutes les palettes
flottantes qui étaient affichées au moment de la dernière fermeture de
l’application et elle affiche les palettes flottantes au même endroit et avec le
même groupement d’onglets.
API de palette flottante
L’API de palette flottante contient quatre fonctions personnalisées qui sont toutes
facultatives. Les fonctions de l’API de palette flottante diffèrent des fonctions de
l’API JavaScript principale sur trois points :
Elles ne sont pas des méthodes de l’objet dreamweaver, dom ou site.
Elles ne sont significatives que dans le contexte des fichiers de palette flottante.
En d’autres termes, Dreamweaver n’appelle automatiquement la fonction
documentEdited() que si elle est définie dans un fichier de palette flottante, tandis
que dans tout autre fichier d’extension, une fonction nommée documentEdited()
se comporte comme une fonction utilisateur et vous devez l’appeler
explicitement.
Il vous incombe d’écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l’opposé de celui des fonctions
de l’API principale dans laquelle vous appelez les fonctions, leur transmettez
des arguments, puis Dreamweaver génère des valeurs renvoyées, le cas échéant.
Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions et leur
transmet des arguments, puis vous générez des valeurs renvoyées, le cas échéant.
documentEdited()
Description
Appelée lorsque la palette flottante s’affiche et une fois que la série de
modifications en cours est terminée ; cela signifie que plusieurs modifications
peuvent être effectuées avant que cette fonction ne soit appelée. Cette fonction ne
doit être définie que si la palette flottante doit assurer le suivi des modifications
apportées au document.
Remarque : ne définissez la fonction documentEdited() que si vous en avez absolument
besoin, car son existence affecte les performances.
Palettes flottantes
277
000ExtendingDWU.book Page 278 Thursday, June 8, 2000 3:38 PM
Arguments
Aucun.
Renvoie
Aucune.
Exemple
Dans l’exemple suivant, la fonction documentEdited() recherche des calques dans le
document et met à jour un champ de texte affichant le nombre de calques du
document :
function documentEdited(){
/* create a list of all the layers in the document */
var theDOM = dw.getDocumentDOM();
var layersInDoc = theDOM.getElementsByTagName("layer");
var layerCount = layersInDoc.length;
/* update the numOfLayers field with the new layer count */
document.theForm.numOfLayers.value = layerCount;
}
selectionChanged()
Description
Appelée lorsque la palette flottante s’affiche et à chaque changement de sélection
(lorsqu’un nouveau document devient actif, ou lorsque le pointeur d’insertion
passe à un nouvel emplacement dans le document actif ). Cette fonction ne doit
être définie que si la palette flottante doit assurer le suivi de la sélection.
Remarque : ne définissez la fonction selectionChanged() que si vous en avez absolument
besoin, car son existence affecte les performances.
Arguments
Aucun.
Renvoie
Aucune.
Exemple
Dans l’exemple suivant, la fonction selectionChanged() affiche un panneau (calque)
différent dans la palette flottante selon que la sélection est un marqueur de script
ou autre chose :
function selectionChanged(){
/* get the selected node */
var theDOM = dw.getDocumentDOM();
var theNode = dw.getSelectedNode();
/* check to see if the node is a script marker */
if (theNode.nodeType == Node.ELEMENT_NODE && theNode.tagName == "SCRIPT"){
document.layers[’blanklayer’].visibility = ‘hidden’;
document.layers[’scriptlayer’].visibility = ‘visible’;
}else{
document.layers[’scriptlayer’].visibility = ‘hidden’;
document.layers[’blanklayer’].visibility = ‘visible’;
}
}
278
Chapitre 14
000ExtendingDWU.book Page 279 Thursday, June 8, 2000 3:38 PM
initialPosition()
Description
Détermine la position initiale de la palette flottante lorsqu’elle est appelée pour la
première fois. Si cette fonction n’est pas définie, la position par défaut est le centre
de l’écran.
Arguments
platform
Les valeurs possibles pour l’argument platform sont
"Mac"
et "Win".
Renvoie
Une chaîne au format "leftPosInPixels,topPosInPixels".
Exemple
Dans l’exemple suivant, la fonction initialPosition() spécifie que lorsque la palette
flottante s’affiche pour la première fois, elle doit se trouver à 420 pixels du côté
gauche de l’écran et à 20 pixels du haut de l’écran dans Windows, et à 400 pixels
du côté gauche et à 20 pixels du haut de l’écran sur Macintosh :
function initialPosition(platform){
var initPos = "420,20";
if (platform == "macintosh"){
initPos = "390,20";
}
return initPos;
}
initialTabs()
Description
Détermine quelles sont les autres palettes flottantes dont les onglets sont combinés
à ceux de cette palette lorsqu’elle s’affiche pour la première fois. Si l’une des
palettes flottantes répertoriées s’est affichée précédemment, elle n’est pas incluse
dans le groupement d’onglets. Ainsi, pour que les onglets de deux palettes
flottantes personnalisées soient combinés, chacune d’elle doit référencer l’autre
dans sa fonction initialTabs().
Arguments
Aucun.
Renvoie
Une chaîne au format "floaterName1,floaterName2,...floaterNameN".
Exemple
Dans l’exemple suivant, la fonction initialTabs() spécifie que lorsque la palette
flottante s’affiche pour la première fois, ses onglets doivent être combinés à ceux
de la palette scriptEditor :
function initialTabs(){
return "scriptEditor";
}
Palettes flottantes
279
000ExtendingDWU.book Page 280 Thursday, June 8, 2000 3:38 PM
A propos des performances
Le fait de déclarer la fonction selectionChanged() ou documentEdited() dans vos
palettes flottantes personnalisées risque d’avoir des répercussions négatives sur les
performances de Dreamweaver. Cela peut se comprendre facilement si l’on
considère que la fonction documentEdited() est appelée après chaque frappe d’une
touche et que la fonction selectionChanged() est appelée chaque fois qu’une touche
de direction est utilisée. Il est important de tester votre palette flottante par
rapport à de nombreux scénarios différents et en utilisant des documents
volumineux (100 Ko ou plus de code HTML) autant que possible.
Pour vous aider à éviter les pertes de performances, la fonction setTimeout() a été
implémentée en tant que méthode globale dans Dreamweaver 3. Tout comme
dans les navigateurs, setTimeout() accepte deux arguments : le code JavaScript
devant être appelé, et le délai d’attente en millisecondes devant précéder cet appel.
La méthode setTimeout() vous permet d’introduire dans votre traitement des pauses
au cours desquelles l’utilisateur peut poursuivre son interaction avec l’application.
Vous devez incorporer ces pauses de façon explicite étant donné que l’écran se fige
pendant le traitement des scripts et, par conséquent, empêche l’utilisateur
d’effectuer des modifications supplémentaires (et vous-même de mettre à jour
l’interface ou la palette flottante).
Le code suivant correspond à une palette flottante qui affiche des informations sur
chacun des calques du document. Il utilise la méthode setTimeout() pour marquer
une pause d’une demi-seconde après le traitement de chaque calque :
/* create a flag that specifies whether an edit is being processed, and set it to FALSE. */
document.running = false;
/* this function called when document is edited */
function documentEdited(){
/* create a list of all the layers to be processed */
var dom = dw.getDocumentDOM();
document.layers = dom.getElementsByTagName("layer");
document.numLayers = document.layers.length;
document.numProcessed = 0;
/* set a timer to call processLayer(); if we didn’t get
* to finish processing the previous edit, then the timer
* is already set. */
if (document.running = false){
setTimeout("processLayer()", 500);
}
/* set the processing flag to TRUE */
document.running = true;
}
/* process one layer */
280
Chapitre 14
000ExtendingDWU.book Page 281 Thursday, June 8, 2000 3:38 PM
function processLayer(){
/* display information for the next unprocessed layer.
displayLayer() is a function you would write to
perform the "magic". */
displayLayer(document.layers[document.numProcessed]);
/* if there’s more work to do, set a timeout to process
* the next layer. If we’re finished, set the document.running
* flag to FALSE. */
document.numProcessed = document.numProcessed + 1;
if (document.numProcessed < document.numLayers){
setTimeout("processLayer()", 500);
}else{
document.running = false;
}
}
Exemple de palette flottante simple
La palette flottante suivante contient un champ de texte indiquant le contenu du
marqueur de script sélectionné (l’icône jaune qui s’affiche dans la fenêtre du
document pour marquer l’emplacement d’un script). Si aucun marqueur de script
n’est sélectionné, un calque contenant le texte (no script selected) s’affiche.
<html>
<head>
<title>Script Editor</title>
<script language="JavaScript">
function selectionChanged(){
/* get the selected node */
var theDOM = dw.getDocumentDOM();
var theNode = theDOM.getSelectedNode();
/* check to see if the node is a script marker */
if (theNode.nodeType == Node.ELEMENT_NODE && theNode.tagName == "SCRIPT"){
document.layers[’scriptlayer’].visibility = ‘visible’;
document.layers[’scriptlayer’].document.theForm.scriptCode.value =
theNode.innerHTML;
document.layers[’blanklayer’].visibility = ‘hidden’;
}else{
document.layers[’scriptlayer’].visibility = ‘hidden’;
document.layers[’blanklayer’].visibility = ‘visible’;
}
}
/* update the document with any changes made by
the user in the textarea */
Palettes flottantes
281
000ExtendingDWU.book Page 282 Thursday, June 8, 2000 3:38 PM
function updateScript(){
var theDOM = dw.getDocumentDOM();
var theNode = dw.getSelectedNode();
theNode.innerHTML = document.layers[’scriptlayer’].document.theForm.scriptCode.value;
}
</script>
</head>
<body>
<div id="blanklayer" style="position:absolute; width:422px; height:181px; z-index:1; left:
8px; top: 11px; visibility: hidden">
<center>
<br>
<br>
<br>
<br>
<br>
(no script selected)
</center>
</div>
<div id="scriptlayer" style="position:absolute; width:422px; height:181px; z-index:1; left:
8px; top: 11px; visibility: visible">
<form name="theForm">
<textarea name="scriptCode" cols="80" rows="20" wrap="VIRTUAL"
onBlur="updateScript()"></textarea>
</form>
</div>
</body>
</html>
Rappelez-vous qu’il n’est pas suffisant d’enregistrer ce code dans un fichier appelé
scriptEditor.htm situé dans le dossier Configuration/Floaters ; vous devez
également appeler dw.setFloaterVisibility(‘scriptEditor’,true) ou
dw.toggleFloater(‘scriptEditor’) à partir d’un endroit quelconque pour charger la
palette flottante et la rendre visible. Le fichier menus.xml du menu Fenêtre est
l’endroit le plus logique à partir duquel vous pouvez effectuer cet appel. La balise
menuitem pourrait ressembler à ce qui suit :
<menuitem name="Script Editor" enabled="true"
command="dw.toggleFloater(’scriptEditor’)"
checked="dw.getFloaterVisibility(’scriptEditor’)" />
282
Chapitre 14
000ExtendingDWU.book Page 283 Thursday, June 8, 2000 3:38 PM
15
CHAPITRE 15
Comportements
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les comportements permettent aux personnes qui ne savent pas écrire de
programmes de créer des pages HTML interactives. Ils offrent aux concepteurs de
sites Web un moyen d’affecter facilement des actions à des éléments de page en
remplissant un formulaire HTML.
Vous devez écrire des actions de comportement lorsque vous souhaitez partager
des fonctions avec des utilisateurs non programmeurs, ou lorsque vous souhaitez
insérer la même fonction JavaScript à plusieurs reprises tout en modifiant les
paramètres à chaque fois.
Remarque : vous ne pouvez pas utiliser les comportements pour insérer des fonctions
VBScript directement ; vous pouvez toutefois ajouter une fonction VBScript indirectement
en modifiant le DOM dans la fonction applyBehavior().
Le terme « comportement » fait référence à la combinaison d’un événement (tel
que onClick, onLoad ou onSubmit) et d’une action (par exemple, Vérifier le plug-in,
Atteindre l’URL, Intervertir une image). Le navigateur détermine quels éléments
HTML acceptent quels événements. Les fichiers répertoriant les événements que
chaque navigateur prend en charge sont stockés dans le dossier Configuration/
Behaviors/Events du dossier de l’application Dreamweaver.
Les actions sont des fichiers HTML. La balise BODY d’un fichier d’action contient
généralement un formulaire HTML qui accepte les paramètres de l’action (par
exemple, les paramètres indiquant quels calques doivent être affichés ou masqués).
La balise HEAD d’un fichier d’action contient des fonctions JavaScript qui traitent
les entrées de formulaire de la balise BODY et contrôlent les fonctions, arguments et
gestionnaires d’événement insérés dans le document de l’utilisateur.
Remarque : pour plus d’informations sur les comportements du serveur fournissant des
fonctionnalités d’application web, voir la section « Comportements de serveur » à la
page 333.
283
000ExtendingDWU.book Page 284 Thursday, June 8, 2000 3:38 PM
Fonctionnement des comportements
Lorsqu’un utilisateur sélectionne un élément HTML dans un document
Dreamweaver et ouvre l’inspecteur de comportements, la chaîne d’événements
suivante se produit :
1
L’utilisateur clique sur le bouton + pour afficher le menu déroulant des actions
Pour déterminer le contenu du menu déroulant, UltraDev recherche d’abord
un fichier Behaviors.xml dans le dossier Actions, accessible via le chemin
d’accès suivant : \Configuration\Behaviors. Behaviors.xml indique les fichiers
HTML dont la balise de titre ou le nom remplit le contenu du menu
déroulant.
Si le fichier HTML référencé contient une balise de titre, le contenu de celle-ci
s’affiche dans le menu. Si ce n’est pas le cas, le nom du fichier est utilisé dans le
menu. Si le dossier contient des sous-dossiers, les fichiers qu’ils contiennent
sont ajoutés au menu sous forme de sous-menus.
S’il n’existe pas de fichier Behaviors.xml ou si le dossier contient au moins un
fichier HTML non mentionné dans ServerBehaviors.xml, UltraDev inspecte
chaque fichier à la recherche d’une balise de titre et utilise celle-ci ou le nom du
fichier pour remplir le menu.
284
Chapitre 15
2
Dreamweaver appelle la fonction canAcceptBehavior() dans chaque fichier
d’action pour vérifier si l’action est adaptée au document ou à l’élément
sélectionné. Si cette fonction renvoie la valeur FALSE, Dreamweaver estompe
l’action dans le menu déroulant des actions. (Par exemple, l’action Contrôler
Shockwave ou Flash est estompée lorsque le document de l’utilisateur ne
contient pas d’animation Shockwave.) Si la valeur renvoyée est une liste
d’événements, Dreamweaver les compare un à un aux événements valides de
l’élément HTML actuellement sélectionné et du navigateur cible jusqu’à ce
qu’une correspondance soit trouvée.
3
Dreamweaver insère au début de la liste du menu déroulant des événements
l’événement correspondant obtenu à partir de la fonction canAcceptBehavior() ; si
aucune correspondance n’a été trouvée, l’événement par défaut de l’élément
HTML (marqué d’un astérisque dans le fichier d’événements) devient le
premier élément de la liste. Les autres événements du menu sont retirés du
fichier d’événements.
4
L’utilisateur sélectionne une action dans le menu déroulant des actions.
5
Dreamweaver appelle la fonction windowDimensions(), si elle est définie, pour
déterminer la taille de la boîte de dialogue des paramètres. Si la fonction
windowDimensions() n’est pas définie, la taille est déterminée automatiquement.
6
Dreamweaver affiche une boîte de dialogue contenant les éléments BODY du
fichier d’action. Si la balise BODY du fichier d’action contient un gestionnaire
onLoad, Dreamweaver l’exécute.
000ExtendingDWU.book Page 285 Thursday, June 8, 2000 3:38 PM
7
L’utilisateur entre les paramètres de l’action. Dreamweaver exécute les
gestionnaires d’événements associés aux champs du formulaire au fur et à
mesure que l’utilisateur les rencontre.
8
L’utilisateur clique sur OK.
9
Dreamweaver appelle les fonctions behaviorFunction() et applyBehavior() dans le
fichier d’action sélectionné. Ces fonctions renvoient des chaînes qui sont
insérées dans le document de l’utilisateur.
10
Si l’utilisateur double-clique sur l’action dans la colonne des actions,
Dreamweaver rouvre la boîte de dialogue des paramètres en exécutant le
gestionnaire onLoad. Dreamweaver appelle alors la fonction inspectBehavior()
dans le fichier d’action sélectionné, ce qui a pour effet de renseigner les champs
à l’aide des données que l’utilisateur a entrées précédemment.
Insertion de plusieurs fonctions dans le fichier de l’utilisateur
Les actions peuvent insérer plusieurs fonctions (la fonction de comportement
principale et un nombre illimité de fonctions d’aide) dans l’élément HEAD.
Plusieurs comportements peuvent même partager des fonctions d’aide, à
condition que les fonctions soient définies exactement de la même façon dans
chaque fichier d’action. Une façon d’assurer que les fonctions partagées sont
identiques consiste à stocker chaque fonction d’aide dans un fichier JavaScript
externe et à insérer ce dernier dans les fichiers d’action appropriés à l’aide de
<SCRIPT SRC="externalFile.js">.
Lorsque l’utilisateur supprime un comportement, Dreamweaver tente de
supprimer toutes les fonctions d’aide inutilisées associées à ce comportement. Si
d’autres comportements utilisent une fonction d’aide, celle-ci n’est pas supprimée.
Du fait que l’algorithme de suppression des fonctions d’aide pèche par excès de
prudence, Dreamweaver peut occasionnellement laisser une fonction inutilisée
dans le document de l’utilisateur.
Procédure à suivre lorsqu’une action exige une valeur renvoyée
Il peut arriver qu’un gestionnaire d’événements exige une valeur renvoyée (par
exemple, onMouseOver="window.status=’This is a link’; return true" ). Mais si
Dreamweaver insère "return behaviorName(args)" dans le gestionnaire d’événements,
les autres comportements de la liste sont ignorés.
Pour contourner cette limitation, affectez à une variable appelée
document.MM_returnValue la valeur de renvoi désirée dans la chaîne renvoyée par
behaviorFunction(). Ce paramétrage entraîne l’insertion par Dreamweaver de return
document.MM_returnValue à la fin de la liste des actions du gestionnaire
d’événements. Reportez-vous au fichier Validate Form.js situé dans le dossier
Configuration/Behaviors/Actions du dossier de l’application Dreamweaver pour
voir un exemple d’utilisation de MM_returnValue.
Comportements
285
000ExtendingDWU.book Page 286 Thursday, June 8, 2000 3:38 PM
API de comportement
L’API de comportement comporte huit fonctions personnalisées dont deux
(applyBehavior() et behaviorFunction()) sont obligatoires. Les fonctions de l’API de
comportement diffèrent des fonctions de l’API JavaScript principale sur trois
points :
Elles ne sont pas des méthodes de l’objet dreamweaver, dom ou site.
Elles ne sont significatives que dans le contexte des fichiers de comportement.
En d’autres termes, Dreamweaver n’appelle automatiquement la fonction
applyBehavior() que si elle est définie dans un fichier de comportement, tandis
que dans tout autre fichier d’extension, une fonction nommée applyBehavior() se
comporte comme une fonction utilisateur et vous devez l’appeler
explicitement.
Il vous incombe d’écrire le corps de chaque fonction et de renvoyer une valeur,
si nécessaire. Ce mode de fonctionnement est à l’opposé de celui des fonctions
de l’API principale dans laquelle vous appelez les fonctions, leur transmettez
des arguments, puis Dreamweaver génère des valeurs renvoyées, le cas échéant.
Dans le cas de cette API spécifique, Dreamweaver appelle les fonctions et leur
transmet des arguments, puis vous générez des valeurs renvoyées, le cas échéant.
applyBehavior()
Description
Insère dans le document de l’utilisateur un gestionnaire d’événements qui appelle
la fonction insérée par behaviorFunction(). Cette fonction peut également exécuter
d’autres modifications dans le document de l’utilisateur, mais elle ne doit pas
supprimer l’objet auquel le comportement est appliqué ou qui reçoit l’action.
Arguments
uniqueName
Cet argument est un identifiant unique parmi toutes les instances de tous les
comportements du document de l’utilisateur. Son format est functionNameInteger,
où functionName correspond au nom de la fonction insérée par behaviorFunction().
Cet argument peut être utile si vous insérez une balise dans le document de
l’utilisateur et souhaitez affecter une valeur unique à son attribut NAME.
Renvoie
Une chaîne contenant l’appel de fonction qui doit être inséré dans le document de
l’utilisateur, généralement après acceptation des paramètres entrés par l’utilisateur.
Si applyBehavior() détermine que l’utilisateur a effectué une entrée non valide, la
fonction peut renvoyer une chaîne d’erreur au lieu de l’appel de fonction.
Dreamweaver ne signale aucune erreur si la chaîne est vide (return "";), mais si la
chaîne n’est pas vide et qu’elle n’est pas non plus un appel de fonction,
Dreamweaver affiche une boîte de dialogue contenant le texte : Invalid Input
supplied for this behavior: [the string returned from applyBehavior()] . Si la valeur renvoyée
est NULL (return;), Dreamweaver indique qu’une erreur s’est produite mais sans
fournir plus de détails.
Remarque : les guillemets contenus dans la chaîne renvoyée doivent être précédés d’une
barre oblique inverse (\) afin d’éviter que l’interpréteur JavaScript ne signale des erreurs.
286
Chapitre 15
000ExtendingDWU.book Page 287 Thursday, June 8, 2000 3:38 PM
Exemple
Dans l’exemple suivant, la fonction applyBehavior() renvoie un appel de la fonction
MM_openBrWindow() et lui transmet les paramètres fournis par l’utilisateur (hauteur
et largeur de la fenêtre ; si la fenêtre doit afficher des barres de défilement, une
barre d’outils, une barre d’emplacement et d’autres fonctions ; et l’URL qui doit
s’ouvrir dans la fenêtre) :
function applyBehavior() {
var i,theURL,theName,arrayIndex = 0;
var argArray = new Array(); //use array to produce correct number of commas w/o spaces
var checkBoxNames = new
Array("toolbar","location","status","menubar","scrollbars","resizable");
for (i=0; i<checkBoxNames.length; i++) {
theCheckBox = eval("document.theForm." + checkBoxNames[i]);
if (theCheckBox.checked) argArray[arrayIndex++] = (checkBoxNames[i] + "=yes");
}
if (document.theForm.width.value)
argArray[arrayIndex++] = ("width=" + document.theForm.width.value);
if (document.theForm.height.value)
argArray[arrayIndex++] = ("height=" + document.theForm.height.value);
theURL = escape(document.theForm.URL.value);
theName = document.theForm.winName.value;
return "MM_openBrWindow(’"+theURL+"’,’"+theName+"’,’"+argArray.join()+"’)";
}
behaviorFunction()
Description
Insère une ou plusieurs fonctions (délimitées par des balises <SCRIPT
LANGUAGE="JavaScript"></SCRIPT>, s’il n’en existe pas encore) dans la balise HEAD
du document de l’utilisateur.
Arguments
Aucun.
Renvoie
Soit une chaîne contenant les fonctions JavaScript à insérer dans le document de
l’utilisateur, soit une chaîne contenant le nom des fonctions à insérer dans le
document de l’utilisateur. Cette valeur doit être chaque fois identique (elle ne peut
pas dépendre des données entrées par l’utilisateur). Les fonctions sont insérées une
seule fois, quel que soit le nombre de fois que l’action est appliquée aux éléments
du document.
Remarque : les guillemets contenus dans la chaîne renvoyée doivent être précédés d’une
barre oblique inverse (\) afin d’éviter que l’interpréteur JavaScript ne signale des erreurs.
Exemple
Dans l’exemple suivant, la fonction behaviorFunction() renvoie une fonction appelée
MM_popupMsg() :
function behaviorFunction(){
return ""+
"function MM_popupMsg(theMsg) { //v1.0\n"+
" alert(theMsg);\n"+
"}";
}
Comportements
287
000ExtendingDWU.book Page 288 Thursday, June 8, 2000 3:38 PM
Le code suivant est équivalent à la déclaration de fonction behaviorFunction()
précédente, et il s’agit de la méthode utilisée pour déclarer la fonction
behaviorFunction() dans tous les comportements fournis avec Dreamweaver :
function MM_popupMsg(theMsg){ //v1.0
alert(theMsg);
}
function behaviorFunction(){
return "MM_popupMsg";
}
canAcceptBehavior()
Description
Indique si l’action est autorisée pour l’élément HTML sélectionné et définit
l’événement par défaut qui doit la déclencher. Peut également rechercher la
présence de certains objets (tels que des animations Shockwave) dans le document
de l’utilisateur et interdire l’action si ces objets sont absents.
Arguments
HTMLelement
L’argument est l’élément HTML sélectionné.
Renvoie
L’une des valeurs suivantes :
TRUE si l’action est autorisée mais n’est associée à aucun événement préféré.
Une liste des événements préférés (par ordre décroissant de préférence) de cette
action. La définition d’événements préférés remplace l’événement par défaut
(signalé par un astérisque dans le fichier d’événements) de l’objet sélectionné.
Voir les étapes 2 et 3 de la section « Fonctionnement des comportements » à la
page 284.
FALSE si l’action n’est pas autorisée.
Si canAcceptBehavior() renvoie la valeur FALSE, l’action est estompée dans le menu
déroulant des actions de l’inspecteur de comportements.
Exemple
Dans l’exemple suivant, la fonction canAcceptBehavior() renvoie une liste des
événements préférés du comportement si le document contient des images
nommées :
function canAcceptBehavior(){
var theDOM = dreamweaver.getDocumentDOM();
// Get an array of all images in the document
var allImages = theDOM.getElementsByTagName(’IMG’);
if (allImages.length > 0){
return "onMouseOver, onClick, onMouseDown";
}else{
return FALSE;
}
}
288
Chapitre 15
000ExtendingDWU.book Page 289 Thursday, June 8, 2000 3:38 PM
displayHelp()
Description
Si cette fonction est définie, un bouton Aide apparaît sous les boutons OK et
Annuler dans la boîte de dialogue des paramètres. Cette fonction est appelée
lorsque l’utilisateur clique sur le bouton Aide.
Arguments
Aucun.
Renvoie
Aucune.
Exemple
Dans l’exemple suivant, la fonction displayHelp() ouvre dans une fenêtre de
navigateur un fichier contenant les instructions d’utilisation du comportement:
function displayHelp(){
dreamweaver.browseDocument(’http://www.hotwired.com/webmonkey/javascript/
code_library/wm_pos2_elmnt_dw/?tw=javascript’);
}
deleteBehavior()
Description
Annule toutes les modifications effectuées par la fonction applyBehavior().
Remarque : Dreamweaver supprime automatiquement la déclaration de fonction et le
gestionnaire d’événements associés à un comportement lorsque l’utilisateur supprime ce
comportement dans l’inspecteur de comportements. Ainsi, il est nécessaire de définir la
fonction deleteBehavior() uniquement si la fonction applyBehavior() a effectué des
modifications supplémentaires dans le document de l’utilisateur (par exemple, si elle a inséré
une balise EMBED).
Arguments
applyBehaviorString
Cet argument correspond à la chaîne qui a été renvoyée précédemment par la
fonction applyBehavior().
Renvoie
Aucune.
identifyBehaviorArguments()
Description
Associe les arguments d’un appel de fonction de comportement à nav, dep, URL,
NS4.0ref, IE4.0ref, objName ou other de façon à ce que les URL utilisées dans les
comportements puissent être mises à jour si l’utilisateur enregistre le document
dans un autre emplacement, et pour que les fichiers référencés puissent s’afficher
dans la carte du site et être considérés comme des fichiers indépendants afin de
pouvoir être téléchargés vers et depuis un serveur.
Arguments
theFunctionCall
Cet argument correspond à la chaîne qui a été renvoyée précédemment par la
fonction applyBehavior().
Comportements
289
000ExtendingDWU.book Page 290 Thursday, June 8, 2000 3:38 PM
Renvoie
Chaîne contenant une liste des types d’arguments de l’appel de fonction séparés
par des virgules. La longueur de la liste doit être égale au nombre d’arguments
transmis lors de l’appel de fonction. Les types d’argument doivent toujours être
l’un des suivants :
nav indique que l’argument est une URL de navigation et qu’il doit donc être
affiché dans la carte du site.
dep indique que l’argument est une URL de fichier dépendant et qu’il doit donc
être inclus avec tous les autres fichiers dépendants lorsqu’un document
contenant ce comportement est téléchargé depuis ou vers un serveur.
URL indique que l’argument est à la fois une URL de navigation et une URL
dépendante (ou une URL de type inconnu), et qu’il doit donc être affiché dans
la carte du site et considéré comme un fichier dépendant lors du
téléchargement depuis ou vers un serveur.
NS4.0ref indique que l’argument est une référence à un objet DOM de
Netscape.
IE4.0ref indique que l’argument est une référence à un objet DOM d’Internet
Explorer.
objName indique que l’argument est un nom d’objet simple, tel qu’il est spécifié
dans l’attribut NAME de l’objet. Ce type a été ajouté à Dreamweaver 3.
other indique que l’argument n’appartient à aucun des types ci-dessus.
Exemple
Cet exemple simple de fonction identifyBehaviorArguments() fonctionnerait avec
l’action de comportement Ouvrir la fenêtre Navigateur qui renvoie une fonction
comportant toujours trois arguments (l’URL à ouvrir, le nom de la nouvelle
fenêtre et la liste des propriétés de la fenêtre) :
function identifyBehaviorArguments(fnCallStr) {
return "URL,other,other";
}
290
Chapitre 15
000ExtendingDWU.book Page 291 Thursday, June 8, 2000 3:38 PM
Une version plus complexe de la fonction identifyBehaviorArguments() est nécessaire
pour les fonctions de comportement ayant un nombre variable d’arguments (telles
que Afficher-Masquer les calques). Cette version de la fonction
identifyBehaviorArguments() repose sur le fait qu’il existe un nombre minimum
d’arguments et que les arguments supplémentaires se présentent toujours en
groupes dont la taille est un multiple de ce nombre minimum. En d’autres termes,
une fonction dont le nombre d’arguments minimum est 4 peut avoir 4, 8 ou 12
arguments, mais elle n’en aura jamais 10.
function identifyBehaviorArguments(fnCallStr) {
var listOfArgTypes;
var itemArray = dreamweaver.getTokens(fnCallStr, ‘(),’);
//The array of items returned by getTokens() includes the function name,
//so the number of *arguments* in the array is the length of the array
//minus one. Divide by 4 to get the number of groups of arguments.
var numArgGroups = ((itemArray.length - 1)/4);
//For each group of arguments
for (i=0; i < numArgGroups; i++){
//Add a comma and “NS4.0ref,IE4.0ref,other,dep” (because this
//hypothetical behavior function has a minimum of four arguments:
//the Netscape object reference, the IE object reference, a dependent
//URL, and perhaps a property value such as "show" or "hide") to the
//existing list of argument types, or if no list yet exists, add only
//"NS4.0ref,IE4.0ref,other,dep"
var listOfArgTypes += ((listOfArgTypes)?",":"") +
"NS4.0ref,IE4.0ref,other,dep";
}
}
inspectBehavior()
Description
Recherche dans l’appel de fonction un comportement déjà appliqué au document
de l’utilisateur et définit les valeurs des options de la boîte de dialogue des
paramètres en conséquence. Si la fonction inspectBehavior() n’est pas définie, les
valeurs par défaut des options s’affichent.
Remarque : inspectBehavior() doit uniquement utiliser les informations qui lui sont
transmises via l’argument applyBehaviorString. N’essayez pas d’obtenir d’autres informations
sur le document de l’utilisateur (par exemple, en utilisant la fonction
dreamweaver.getDocumentDOM()) dans cette fonction.
Arguments
applyBehaviorString
Cet argument correspond à la chaîne qui a été renvoyée précédemment par la
fonction applyBehavior().
Renvoie
Aucune.
Comportements
291
000ExtendingDWU.book Page 292 Thursday, June 8, 2000 3:38 PM
Exemple
Dans l’exemple suivant, la fonction inspectBehavior(), extraite du fichier Display
Status Message.htm, renseigne le champ Message du formulaire des paramètres
avec le message que l’utilisateur a sélectionné lors de la première application du
comportement :
function inspectBehavior(msgStr){
var startStr = msgStr.indexOf("’") + 1;
var endStr = msgStr.lastIndexOf("’");
if (startStr > 0 && endStr > startStr) {
document.theForm.message.value = unescQuotes(msgStr.substring(startStr,endStr));
}
}
Remarque : pour plus d’informations sur la fonction unescQuotes(), voir le fichier string.js
du dossier Configuration/Shared/macromedia/scripts/cmn.
windowDimensions()
Description
Définit des dimensions spécifiques pour la boîte de dialogue des paramètres afin
d’accélérer l’affichage. Si cette fonction n’est pas définie, les dimensions de la
fenêtre sont calculées automatiquement.
Remarque : ne définissez cette fonction que si vous souhaitez utiliser une boîte de dialogue
d’options ayant des dimensions supérieures à 640 x 480 pixels.
Arguments
platform
La valeur de l’argument est soit "macintosh", soit "windows", selon la plate-forme
utilisée par l’utilisateur.
Renvoie
Une chaîne de caractères au format "widthInPixels,heightInPixels".
Les dimensions renvoyées sont inférieures à la taille totale de la fenêtre de la boîte
de dialogue parce qu’elles n’incluent pas la zone des boutons OK et Annuler. Si les
dimensions renvoyées ne permettent pas de faire apparaître toutes les options, des
barres de défilement s’affichent.
Exemple
Dans l’exemple suivant, la fonction windowDimensions() fixe les dimensions de la
boîte de dialogue des paramètres à 648 x 520 pixels :
function windowDimensions(platform){
return "648,520";
}
292
Chapitre 15
000ExtendingDWU.book Page 293 Thursday, June 8, 2000 3:38 PM
Exemple de comportement simple
Pour mieux comprendre le fonctionnement des comportements et la façon dont
vous pouvez en créer un, il est utile d’examiner un exemple. Le dossier
Configuration/Behaviors/Actions du dossier de l’application Dreamweaver
contient de nombreux exemples ; toutefois, ils sont probablement trop complexes
pour les utilisateurs qui ne sont pas des développeurs confirmés. Le fichier
d’action le plus simple pour commencer est Call JavaScript.htm (avec son
homologue, Call JavaScript.js, qui contient toutes les fonctions JavaScript).
Le code suivant présente également un exemple relativement simple. Il vérifie la
marque du navigateur et atteint une page spécifique s’il s’agit de Netscape et une
page différente s’il s’agit de Microsoft Internet Explorer. Ce code peut facilement
être étendu pour vérifier d’autres marques (telles qu’Opera et WebTV) et modifié
pour exécuter d’autres actions que l’action d’atteindre des URL.
<html>
<head>
<title>behavior "Check Browser Brand"</title>
<meta http-equiv="Content-Type" content="text/html">
<script language="JavaScript">
// The function that will be inserted into the
// HEAD of the user’s document
function checkBrowserBrand(netscapeURL,explorerURL) {
if (navigator.appName == "Netscape") {
if (netscapeURL) location.href = netscapeURL;
}else if (navigator.appName == "Microsoft Internet Explorer") {
if (explorerURL) location.href = explorerURL;
}
}
//******************* API **********************
function canAcceptBehavior(){
return true;
}
// Return the name of the function to be inserted into
// the HEAD of the user’s document
function behaviorFunction(){
return "checkBrowserBrand";
}
Comportements
293
000ExtendingDWU.book Page 294 Thursday, June 8, 2000 3:38 PM
// Create the function call that will be inserted
// with the event handler
function applyBehavior() {
var nsURL = escape(document.theForm.nsURL.value);
var ieURL = escape(document.theForm.ieURL.value);
if (nsURL && ieURL) {
return "checkBrowserBrand(\’" + nsURL + "\’,\’" + ieURL + "\’)";
}else{
return "Please enter URLs in both fields."
}
}
// Extract the arguments from the function call
// in the event handler and repopulate the
// parameters form
function inspectBehavior(fnCall){
var argArray = getTokens(fnCall, "()’,");
var nsURL = unescape(argArray[1]);
var ieURL = unescape(argArray[2]);
document.theForm.nsURL.value = nsURL;
document.theForm.ieURL.value = ieURL;
}
//***************** LOCAL FUNCTIONS ******************
// Put the cursor in the first text field
// and select the contents, if any
function initializeUI(){
document.theForm.nsURL.focus();
document.theForm.nsURL.select();
}
// Let the user browse to the Navigator and
// IE URLs
function browseForURLs(whichButton){
var theURL = dreamweaver.browseForFileURL();
if (whichButton == "nsURL"){
document.theForm.nsURL.value = theURL;
}else{
document.theForm.ieURL.value = theURL;
}
}
//*************** END OF JAVASCRIPT *****************
</script>
</head>
<body>
<form method="post" action="" name="theForm">
<table border="0" cellpadding="8">
<tr>
<td nowrap="nowrap">&nbsp;&nbsp;Go to this URL if the browser is Netscape
Navigator:<br>
294
Chapitre 15
000ExtendingDWU.book Page 295 Thursday, June 8, 2000 3:38 PM
<input type="text" name="nsURL" size="50" value=""> &nbsp;
<input type="button" name="nsBrowse" value="Browse..."
onClick="browseForURLs(’nsURL’)"></td>
</tr>
<tr>
<td nowrap="nowrap">&nbsp;&nbsp;Go to this URL is the browser is Microsoft Internet
Explorer:<br>
<input type="text" name="ieURL" size="50" value=""> &nbsp;
<input type="button" name="ieBrowse" value="Browse..."
onClick="browseForURLs(’ieURL’)"></td>
</tr>
</table>
</form>
</body>
</html>
Comportements
295
000ExtendingDWU.book Page 296 Thursday, June 8, 2000 3:38 PM
296
Chapitre 15
000ExtendingDWU.book Page 297 Thursday, June 8, 2000 3:38 PM
16
CHAPITRE 16
Traducteurs de données
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les traducteurs de données traduisent les marquages spécialisés, tels que les SSI
(inclusions à partir du serveur), les instructions JavaScript conditionnelles ou
d'autres codes non HTML (ePerl, PHP3, JSP, CFML et ASP...) en code HTML
qui pourra être lu et affiché par Dreamweaver. Dans Dreamweaver 3 vous pouvez
traduire les attributs contenus dans les balises, mais également des balises ou des
blocs de code entiers.
Les balises ou les blocs de code traduits doivent être inclus dans des régions
verrouillées pour conserver le marquage d'origine. Les attributs traduits n'ont pas
besoin de verrous, simplifiant ainsi le contrôle des balises dans lesquelles ils sont
inclus.
Tous les traducteurs de données, qu'il s'agisse de blocs/balises ou d'attributs, sont
des fichiers HTML. L'en-tête (HEAD) d'un traducteur de données contient au
moins deux fonctions JavaScript : une pour spécifier ce que fait le traducteur et le
fichier sur lequel il agit, une pour exécuter la traduction réelle, ainsi qu'un nombre
illimité de fonctions complémentaires. Le corps (BODY) d'un traducteur de
données est vide.
La traduction de données, en particulier pour les balises ou les blocs de code
entiers, peut impliquer des opérations complexes qui soit ne peuvent pas être
effectuées avec JavaScript, soit peuvent être effectuées de manière plus efficace
avec C. Si vous connaissez bien le langage C ou C++, lisez également
« Extensions C » à la page 237.
297
000ExtendingDWU.book Page 298 Thursday, June 8, 2000 3:38 PM
Fonctionnement des traducteurs de données
Dreamweaver gère tous les fichiers de traduction de la même manière, qu'il
s'agisse d'une traduction de balises entières ou d'attributs seuls. Au démarrage,
Dreamweaver lit tous les fichiers du dossier Configuration/Translators et appelle la
fonction getTranslatorInfo() pour obtenir des informations sur le traducteur.
Dreamweaver ignore tous les fichiers dans lesquels la fonction getTranslatorInfo() ne
figure pas ou contient une erreur qui l'empêche d'être définie.
Remarque : pour empêcher que les erreurs JavaScript n'interfèrent avec le démarrage,
toute erreur détectée dans un fichier de traduction n'est signalée qu'après le chargement de
tous les traducteurs. Pour plus d'informations sur le débogage des traducteurs, reportez-vous
à « Recherche de bogues dans un traducteur » à la page 315.
Dreamweaver appelle également la fonction translateMarkup() dans tous les fichiers
de traduction concernés (spécifiés dans les préférences de traduction) chaque fois
que l'utilisateur ajoute du contenu ou modifie un contenu existant nécessitant une
traduction. Par conséquent, Dreamweaver appelle translateMarkup() lorsque
l'utilisateur :
Ouvre un fichier dans Dreamweaver.
Revient dans la fenêtre Document après avoir effectué des modifications dans
l'inspecteur HTML.
Change les propriétés d'un objet dans le document en cours.
Insère un objet (en utilisant la palette Objet ou le menu Insertion).
Actualise le document en cours après l'avoir modifié dans une autre
application.
Applique un modèle au document.
Colle ou fait glisser le contenu dans la fenêtre Document.
Enregistre des modifications dans un fichier dépendant.
Lance une commande, un comportement, un inspecteur de propriétés ou une
autre extension qui définit la propriété innerHTML ou outerHTML de n'importe
quel objet de balise ou la propriété data de n'importe quel objet de
commentaire.
Choisit Fichier > Convertir > Compatible navigateurs 3.0.
Choisit Modifier > Mise en forme > Convertir les tableaux en calques.
Choisit Modifier > Mise en forme > Convertir les calques en tableau.
Choisit Modifier > Traduire > nomTraducteur.
Modifie une balise ou un attribut dans Quick Tag Editor et appuie sur Tab ou
Entrée.
298
Chapitre 16
000ExtendingDWU.book Page 299 Thursday, June 8, 2000 3:38 PM
API de traduction de données
L'API de traduction de données ne comporte que deux fonctions personnalisées,
mais toutes deux sont obligatoires. Ces fonctions se différencient de trois manières
de celles de l'API JavaScript principale :
Ce ne sont pas des méthodes de l'objet dreamweaver, dom ou site.
Elles ne sont significatives que dans le contexte de fichiers de traduction de
données. Autrement dit, Dreamweaver appelle automatiquement la fonction
translateMarkup() si elle est définie dans un fichier de traduction de données,
tandis que dans n'importe quel autre fichier d'extension une fonction nommée
translateMarkup() se comporte comme une fonction définie par l'utilisateur :
vous devez l'appeler de manière explicite.
Vous devez rédiger le corps de chaque fonction et renvoyer une valeur, si
nécessaire. Le fonctionnement est donc inverse à celui des fonctions de l'API
principale que vous appelez, auxquelles vous transmettez des arguments et pour
lesquelles Dreamweaver génère des valeurs de retour, le cas échéant. Les
fonctions de l'API de traduction de données, par contre, sont appelées par
Dreamweaver qui leur transmet des arguments et vous générez des valeurs de
retour, le cas échéant.
getTranslatorInfo()
Description
Donne des informations sur le traducteur et les fichiers qu'il peut traiter.
Arguments
Aucun.
Renvoie
Une table de chaînes. Les éléments de la table doivent apparaître dans l'ordre
suivant :
translatorClass attribue un identificateur unique au traducteur. Cette chaîne doit
commencer par une lettre et ne peut contenir que des caractères
alphanumériques, des tirets (-) et des traits de soulignement (_).
title décrit le traducteur en utilisant 40 caractères au maximum. Cette chaîne
apparaît dans le menu Modifier > Traduire, ainsi que dans les préférences de
traduction.
nExtensions spécifie le nombre d'extensions de fichier à suivre. Si nExtensions
est 0, le traducteur peut s'exécuter sur n'importe quel fichier.
extension spécifie une extension (telle que "htm" ou "SHTML") que ce traducteur
peut traiter. Cette chaîne ne fait pas la distinction entre majuscules et
minuscules et ne doit pas contenir de point de tête. La table doit contenir le
nombre d'éléments d'extension spécifié dans nExtensions.
nRegExps spécifie le nombre d'expressions régulières qui suivront. Si nRegExps
est 0, runDefault est l'élément suivant de la table.
Traducteurs de données
299
000ExtendingDWU.book Page 300 Thursday, June 8, 2000 3:38 PM
regExps spécifie une expression régulière à rechercher. La table doit contenir le
nombre d'éléments regExps spécifié dans nRegExps et au moins l'une des regExps
doit concorder avec une portion du code source HTML du document pour
que le traducteur puisse traiter un fichier.
runDefault spécifie la préférence par défaut pour l'exécution de ce traducteur. Les
valeurs acceptées sont "allFiles", "noFiles", "byExtension" et "byExpression". Si vous
définissez runDefault sur la valeur "byExtension" sans spécifier d'extensions (voir
extension, ci-dessus), vous obtenez le même résultat qu'avec la valeur "allFiles". Si
vous définissez runDefault sur la valeur "byExpression" sans spécifier d'expressions
(voir regExps, ci-dessus), vous obtenez le même résultat qu'avec la valeur
"noFiles". Quelle qu'elle soit, la valeur définie pour runDefault peut être remplacée
par l'utilisateur dans la boîte de dialogue Préférences.
Exemple
L'instance suivante de getTranslatorInfo() fournit des informations sur un traducteur
d'inclusions à partir du serveur :
function getTranslatorInfo(){
var transArray = new Array(11);
transArray[0] = "SSI";
transArray[1] = "Server-Side Includes";
transArray[2] = "4";
transArray[3] = "htm";
transArray[4] = "stm";
transArray[5] = "html";
transArray[6] = "shtml";
transArray[7] = "2";
transArray[8] = "<!--#include file";
transArray[9] = "<!--#include virtual";
transArray[10] = "byExtension";
return transArray;
}
translateMarkup()
Description
Effectue la traduction.
Arguments
docName, siteRoot, docContent
Le premier argument est une chaîne contenant l'URL fichier:// du document à
traduire.
Le deuxième argument est une chaîne contenant l'URL fichier:// de la racine
du site qui contient le document à traduire. Si le document est en dehors d'un
site, cette chaîne peut être vide.
Le troisième argument est une chaîne qui indique le contenu du document.
Renvoie
300
Chapitre 16
Une chaîne contenant le document traduit.
000ExtendingDWU.book Page 301 Thursday, June 8, 2000 3:38 PM
Exemple
L'instance suivante de translateMarkup() appelle la fonction C translateASP(),
contenue dans un fichier DLL (Windows) ou dans une bibliothèque de codes
(Macintosh) nommée ASPTrans :
function translateMarkup(docName, siteRoot, docContent){
var translatedString = "";
if (docContent.length > 0){
translatedString = ASPTrans.translateASP(docName, siteRoot, docContent);
}
return translatedString;
}
Pour obtenir un exemple entièrement JavaScript, reportez-vous aux sections
« Exemple simple de traducteur d'attribut » à la page 303 ou « Exemple simple de
traducteur de bloc/balise » à la page 309.
liveDataTranslateMarkup function()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Traduit les documents lorsque l'utilisateur travaille dans la fenêtre Live Data.
Lorsque l'utilisateur choisit l'option Affichage > Live Data ou clique sur le bouton
Actualiser, UltraDev appelle la fonction liveDataTranslateMarkup() au lieu de la
fonction translateMarkup().
Arguments
docName, siteRoot, docContent
Le premier argument est une chaîne contenant l'URL fichier:// du document à
traduire.
Le deuxième argument est une chaîne contenant l'URL fichier:// de la racine
du site où se trouve le document à traduire. Si le document est en dehors d'un
site, cette chaîne peut être vide.
Le troisième argument est une chaîne qui indique le contenu du document.
Renvoie
Une chaîne contenant le document traduit.
Exemple
L'instance suivante de translateMarkup() appelle la fonction C translateASP(),
contenue dans un fichier DLL (Windows) ou dans une bibliothèque de codes
(Macintosh) nommée ASPTrans :
function liveDataTranslateMarkup(docName, siteRoot, docContent){
var translatedString = "";
if (docContent.length > 0){
translatedString = ASPTrans.translateASP(docName, siteRoot, docContent);
}
return translatedString;
}
Traducteurs de données
301
000ExtendingDWU.book Page 302 Thursday, June 8, 2000 3:38 PM
Spécification du type de traducteur à utiliser
Tous les traducteurs sont identiques jusqu'à un certain point : ils contiennent les
fonctions getTranslatorInfo() et translateMarkup() et résident dans le dossier
Configuration/Translators. Cependant, ils se différencient par le type de code
qu'ils insèrent dans le document de l'utilisateur et par la manière dont ce code doit
être inspecté.
Pour traduire de petites portions de marquage de serveur qui déterminent les
valeurs d'attribut ou qui ajoutent conditionnellement des attributs à une balise
HTML standard, rédigez un traducteur d'attribut. Les balises HTML standard
qui contiennent des attributs traduits pouvant être inspectées avec les
inspecteurs de propriétés intégrés à Dreamweaver, il n'est pas nécessaire de
rédiger un inspecteur de propriétés personnalisé. Reportez-vous à « Ajout d'un
attribut traduit à une balise » à la page 302.
Pour traduire une balise entière (telle qu'une inclusion à partir du serveur) ou
un bloc de code (tel que JavaScript, Cold Fusion, PHP ou un autre script),
rédigez un traducteur de bloc/balise. Le code généré par un traducteur de bloc/
balise ne peut pas être inspecté par les inspecteurs de propriétés intégrés à
Dreamweaver. Si vous voulez que les utilisateurs puissent modifier les
propriétés du code d'origine, rédigez un inspecteur personnalisé pour le
contenu traduit. Reportez-vous à « Verrouillage de balises ou de blocs de code
traduits » à la page 307.
Ajout d'un attribut traduit à une balise
La traduction des attributs dépend beaucoup de la capacité de l'analyseur de
Dreamweaver 3 à ignorer le marquage sur serveur. Dreamweaver 3 ignore déjà par
défaut les types les plus courants de marquages de serveur (notamment ASP,
CFML et PHP) ; si vous utilisez un marquage qui comporte des balises de début
et de fin différentes, modifiez la base de balises tierces pour garantir le bon
fonctionnement du traducteur. Pour plus d'informations sur la modification de la
base de balises tierces, reportez-vous au chapitre 16, Personnalisation de
Dreamweaver du manuel Utilisation de Dreamweaver.
Etant donné que Dreamweaver gère la conservation du marquage de serveur
d'origine, la tâche du traducteur est de générer une valeur d'attribut correcte qui
peut être visualisée dans la fenêtre Document. Vous n'avez par conséquent pas
besoin de traducteur si vous utilisez le marquage de serveur uniquement pour les
attributs qui n'ont pas un effet visible pour les utilisateurs.
Le traducteur crée une valeur d'attribut qui a un effet visible dans la fenêtre
Document en ajoutant un attribut spécial, mmTranslatedValue, à la balise qui
contient le marquage de serveur. Cependant, l'attribut mmTranslatedValue et sa
valeur ne sont pas visibles dans l'inspecteur HTML et ne sont pas enregistrés avec
le document.
302
Chapitre 16
000ExtendingDWU.book Page 303 Thursday, June 8, 2000 3:38 PM
L'attribut mmTranslatedValue doit être unique à l'intérieur de la balise. S'il est
probable que le traducteur ait à traduire plusieurs attributs dans la même balise,
créez une routine dans le traducteur pour ajouter des nombres à mmTranslatedValue
(par exemple, mmTranslatedValue1, mmTranslatedValue2, etc.).
La valeur de l'attribut mmTranslatedValue doit être une chaîne codée URL
contenant au moins une paire attribut/valeur correcte. Cela signifie que
mmTranslatedValue="src=%22open.jpg%22" est une traduction valide pour src="<? if
(dayType == weekday) then open.jpg else closed.jpg" ?> et pour <? if (dayType ==
weekday) then src="open.jpg" else src="closed.jpg" ?> .
mmTranslatedValue="%22open.jpg%22" n'est correct pour aucun des deux exemples
car il contient uniquement la valeur et non l'attribut.
Traduction simultanée de plusieurs attributs
L'attribut mmTranslatedValue peut contenir plusieurs paires attribut/valeur
correctes. Prenons par exemple le code non traduit suivant :
<img <? if (dayType==weekday) then src="open.jpg" width="320" height="100" else
src="closed.jpg" width="100" height="320" ?> alt="We're open 24 hours a day from
12:01am Monday until 11:59pm Friday">
Le marquage traduit peut se présenter comme suit :
<img <? if (dayType==weekday) then src="open.jpg" width="320" height="100" else
src="closed.jpg" width="100" height="320" ?>
mmTranslatedValue="src=%22open.jpg%22 width=%22320%22 height=%22100%22"
alt="We're open 24 hours a day from 12:01am Monday until 11:59pm Friday">
Notez que les espaces entre les paires attribut/valeur de l'attribut mmTranslatedValue
ne sont pas codés. Etant donné que Dreamweaver cherche ces espaces lorsqu'il
essaie de rendre la valeur traduite, les paires attribut/valeur de l'attribut
mmTranslatedValue doivent être codées individuellement puis rassemblées pour
former l'attribut mmTranslatedValue complet. Pour obtenir un exemple de cette
procédure, reportez-vous à « Exemple simple de traducteur d'attribut » à la
page 303.
Exemple simple de traducteur d'attribut
Un exemple permet de mieux comprendre la traduction des attributs. Le
traducteur décrit ci-après gère le marquage « Pound Conditional » (Poco), syntaxe
factice assez similaire à ASP ou PHP. Pour que ce traducteur fonctionne
correctement, la première étape consiste à créer un tagspec pour le marquage
Poco, afin d'empêcher à Dreamweaver d'analyser les instructions Poco non
traduites.
Le tagspec du marquage Poco se présente comme suit :
<tagspec tag_name="poco" start_string="<#" end_string="#>"
detect_in_attribute="true" icon="poco.gif" icon_width="17"
icon_height="15"></tagspec>
Traducteurs de données
303
000ExtendingDWU.book Page 304 Thursday, June 8, 2000 3:38 PM
Le fichier poco.xml qui contient ce tagspec est enregistré dans le dossier
Configuration/ThirdPartyTags avec l'icône des balises Poco.
<html>
<head>
<title>Conditional Translator</title>
<meta http-equiv="Content-Type" content="text/html; charset=">
<script language="JavaScript">
/*************************************************************
* This translator handles the following statement syntaxes:*
* <# if (condition) then foo else bar #>*
* <# if (condition) then att="foo" else att="bar" #>*
* <# if (condition) then att1="foo" att2="jinkies"*
* att3="jeepers" else att1="bar" att2="zoinks" #>*
*
*
* It does not handle statements with no else clause.
*
*************************************************************/
var count = 1;
function translateMarkup(docNameStr, siteRootStr, inStr){
var count = 1;
// Counter to ensure unique mmTranslatedValues
var outStr = inStr; // String that will be manipulated
var spacer = "";
// String to manage space between encoded attributes
var start = inStr.indexOf('<# if'); // First instance of Pound Conditional code
/* Déclaré mais non initialisé. */
var attAndValue;
// Boolean indicating whether the attribute is part of
// the conditional statement
var trueStart;
// The beginning of the true case
var falseStart;
// The beginning of the false case
var trueValue;
// The HTML that would render in the true case
var attName;
// The name of the attribute that is being'
// set conditionally.
var equalSign;
// The position of the equal sign just to the
// left of the <#, if there is one
var transAtt;
// The entire translated attribute
var transValue;
// The value that must be URL-encoded
var back3FromStart; // Three characters back from the start position
// (used to find equal sign to the left of <#
var tokens;
// An array of all the attributes set in the true case
var end;
// The end of the current conditional statement.
// As long as there's still a <# conditional that hasn't been translated
while (start != -1){
back3FromStart = start-3;
end = outStr.indexOf(' #>',start);
equalSign = outStr.indexOf('="<# if',back3FromStart);
attAndValue = (equalSign != -1)?false:true;
trueStart = outStr.indexOf('then', start);
304
Chapitre 16
000ExtendingDWU.book Page 305 Thursday, June 8, 2000 3:38 PM
falseStart = outStr.indexOf(' else', start);
trueValue = outStr.substring(trueStart+5, falseStart);
tokens = dreamweaver.getTokens(trueValue,' ');
// If attAndValue is false, find out what attribute you're
// translating by backing up from the equal sign to the
// first space. The substring between the space and the
// equal sign is the attribute.
if (!attAndValue){
for (var i=equalSign; i > 0; i--){
if (outStr.charAt(i) == " "){
attName = outStr.substring(i+1,equalSign);
break;
}
}
transValue = attName + '="' + trueValue + '"';
transAtt = ' mmTranslatedValue' + count + '="' + escape(transValue) + '"';
outStr = outStr.substring(0,end+4) + transAtt + outStr.substring(end+4);
// If attAndValue is true, and tokens is greater than
// 1, then trueValue is a series of attribute/value
// pairs, not just one. In that case, each attribute/value
// pair must be encoded separately and then added back
// together to make the translated value.
}else if (tokens.length > 1){
transAtt = ' mmTranslatedValue' + count + '="'
for (var j=0; j < tokens.length; j++){
tokens[j] = escape(tokens[j]);
if (j>0){
spacer=" ";
}
transAtt += spacer + tokens[j];
}
transAtt += '"';
outStr = outStr.substring(0,end+3) + transAtt + outStr.substring(end+3)
// If attAndValue is true and tokens is not greater
// than 1, then trueValue is a single attribute/value pair.
// This is the simplest case, where all that is necessary is
// to encode trueValue.
}else{
transValue = trueValue;
transAtt = ' mmTranslatedValue' + count + '="' + escape(transValue) + '"';
outStr = outStr.substring(0,end+3) + transAtt + outStr.substring(end+3);
}
// Increment the counter so that the next instance
// of mmTranslatedValue will have a unique name, and
// then find the next <# conditional in the code.
count++;
Traducteurs de données
305
000ExtendingDWU.book Page 306 Thursday, June 8, 2000 3:38 PM
start = outStr.indexOf('<# if',end);
}
// Return the translated string.
return outStr
}
function getTranslatorInfo(){
returnArray = new Array(7);
returnArray[0] = "Pound_Conditional";//The translatorClass
returnArray[1] = "Pound Conditional Translator";//The title
returnArray[2] = "2"; //The number of extensions
returnArray[3] = "html"; //The first extension
returnArray[4] = "htm";//The second extension
returnArray[5] = "1";// The number of expressions
returnArray[6] = "<#";//The first expression
return returnArray
}
</script>
</head>
<body>
</body>
</html>
Inspection des attributs traduits
Si le marquage de serveur est utilisé pour spécifier un seul attribut et si l'attribut
est représenté dans un inspecteur de propriétés, Dreamweaver affiche le marquage
de serveur dans l'inspecteur de propriétés.
Le marquage apparaît, qu'un traducteur y soit associé ou non. Si un traducteur est
associé au marquage, un éclair apparaît sur l'icône dans l'inspecteur. Le traducteur
s'exécute chaque fois que l'utilisateur modifie le marquage de serveur affiché dans
l'inspecteur.
306
Chapitre 16
000ExtendingDWU.book Page 307 Thursday, June 8, 2000 3:38 PM
Remarque : l'icône de l'éclair n'apparaît pas lorsque du texte ou des cellules, des lignes ou
des colonnes de tableau sont sélectionnés. La traduction s'effectue même si l'utilisateur
modifie le marquage de serveur dans l'inspecteur et s'il existe un traducteur gérant ce type de
marquage.
Lorsque le marquage de serveur est utilisé pour contrôler plusieurs attributs dans
une balise, il n'apparaît pas dans l'inspecteur des propriétés, mais l'éclair signale à
l'utilisateur qu'il existe pour l'élément sélectionné.
Les champs de l'inspecteur restent modifiables ; les utilisateurs peuvent entrer des
valeurs pour les attributs qui peuvent être contrôlés par marquage de serveur,
produisant des attributs en double. Si une valeur traduite et une valeur normale
sont toutes deux définies pour un attribut particulier, Dreamweaver affiche la
valeur traduite dans la fenêtre Document. Vous devez décider si le traducteur doit
chercher les attributs en double et les supprimer.
Verrouillage de balises ou de blocs de code
traduits
Dans la plupart des cas, un traducteur doit modifier le marquage afin que
Dreamweaver puisse l'afficher, tout en conservant le marquage d'origine et non les
modifications. Pour cela, Dreamweaver fournit des balises XML spéciales dans
lesquelles vous pouvez inclure le contenu traduit et faire référence au code
d'origine. La syntaxe des balises XML est la suivante :
<MM:BeginLock translatorClass="translatorClass" type="tagNameOrType"
depFiles="dependentFilesList" orig="encodedOrignalMarkup">
Contenu traduit
<MM:EndLock>
où :
est l'identificateur unique du traducteur (première chaîne de la table
renvoyée par getTranslatorInfo()).
translatorClass
Traducteurs de données
307
000ExtendingDWU.book Page 308 Thursday, June 8, 2000 3:38 PM
est une chaîne qui identifie le type de marquage (ou le nom de la
balise associée au marquage) contenu dans le verrou. La chaîne ne peut contenir
que des caractères alphanumériques, des tirets (-) et des traits de soulignement (_).
Vous pouvez vérifier cette valeur dans la fonction canInspectSelection() d'un
inspecteur de propriétés personnalisé pour déterminer si l'inspecteur est approprié
au contenu. Pour plus d'informations, reportez-vous à « Création d'un inspecteur
de propriétés pour le contenu verrouillé » à la page 313. Le contenu verrouillé ne
peut pas être inspecté par l'un des inspecteurs de propriétés intégrés dans
Dreamweaver. Par exemple, en spécifiant type="IMG", vous ne faites pas apparaître
l'inspecteur d'images.
tagNameOrType
est une chaîne qui contient une liste de fichiers séparés par des
virgules et dont dépend le marquage verrouillé. Les fichiers sont référencés à partir
du disque dur (par exemple, C:\sites\avocado8\copyright.html sous Windows ou
MyHD:sites:avocado8:copyright.html sur Macintosh). Si l'utilisateur met à jour
l'un des fichiers de dependentFilesList, Dreamweaver retraduit automatiquement le
contenu dans le document contenant la liste.
dependentFilesList
encodedOriginalMarkup est une chaîne qui contient le marquage d'origine, non
traduit, codé à l'aide d'un petit sous-ensemble de codage URL (utilisez %22
pour “, %3C pour <, %3E pour > et %25 pour %). La méthode escape() constitue
le moyen le plus rapide pour coder une chaîne en URL. Par exemple, si myString
est égal à '<img src="foo.gif">', escape(myString) renvoie
%3Cimg%20src=%22foo.gif%22%3E .
L'exemple suivant indique la portion de code verrouillée pouvant être générée par
la traduction de l'inclusion à partir du serveur <!--#include virtual="/footer.html" --> :
<MM:BeginLock translatorClass="MM_SSI" type="ssi"
depFiles="C:\sites\webdev\footer.html" orig="%3C!--#include virtual=%22/
footer.html%22%20--%3E">
<!-- begin footer -->
<CENTER>
<HR SIZE=1 NOSHADE WIDTH=100%>
<BR>
[<A TARGET="_top" HREF="/">home</A>]
[<A TARGET="_top" HREF="/products/">products</A>]
[<A TARGET="_top" HREF="/services/">services</A>]
[<A TARGET="_top" HREF="/support/">support</A>]
[<A TARGET="_top" HREF="/company/">about us</A>]
[<A TARGET="_top" HREF="/help/">help</A>]
</CENTER>
<!-- end footer -->
<MM:EndLock>
308
Chapitre 16
000ExtendingDWU.book Page 309 Thursday, June 8, 2000 3:38 PM
Exemple simple de traducteur de bloc/balise
Pour mieux comprendre la traduction, il est utile d'examiner un traducteur
entièrement rédigé en JavaScript (c'est-à-dire qui ne dépend d'une bibliothèque C
pour aucune fonctionnalité). Le traducteur suivant serait plus efficace s'il était
écrit en C, mais la version JavaScript étant plus simple, c'est un parfait exemple de
fonctionnement des traducteurs.
Comme la plupart des traducteurs, celui-ci est conçu pour imiter le
comportement du serveur. Supposons que votre serveur web soit configuré pour
remplacer la balise KENT par une photo d'ingénieur différente selon le jour de la
semaine, l'heure et la plate-forme de l'utilisateur. Le traducteur fait la même
chose, mais localement.
<html>
<head>
<title>Kent Tag Translator</title>
<meta http-equiv="Content-Type" content="text/html; charset=">
<script language="JavaScript">
/**********************************************************
* The getTranslatorInfo() function provides information about the*
* translator, including its class and name, the types of documents*
* that are likely to contain the markup to be translated, the *
* regular expressions that a document containing the markup to *
* be translated would match, and the default Translation *
* preference (whether the translator should run on all files, no *
* files, in files with the specified extensions, or in files matching *
* the specified expressions).*
**********************************************************/
function getTranslatorInfo(){
//Create a new array with 6 slots in it
returnArray = new Array(6);
returnArray[0] = "DREAMWEAVER_TEAM"// The translatorClass
returnArray[1] = "Kent Tags"// The title
returnArray[2] = "0" // The number of extensions
returnArray[3] = "1"// The number of expressions
returnArray[4] = "<kent"// Expression
returnArray[5] = "byExpression"// Default Translation preference
return returnArray;
}
Traducteurs de données
309
000ExtendingDWU.book Page 310 Thursday, June 8, 2000 3:38 PM
/**********************************************************
* The translateMarkup() function performs the actual translation. *
* In this translator, the translateMarkup() function is written *
* entirely in JavaScript (that is, it does not rely on a C library) -- *
* and it's also extremely inefficient. It's a simple example, however,*
* which is good for learning.*
**********************************************************/
function translateMarkup(docNameStr, siteRootStr, inStr){
var outStr = "";// The string to be returned after translation
var start = inStr.indexOf('<kent>');// The first position of the KENT tag
// in the document.
var replCode = replaceKentTag();// Calls the replaceKentTag() function
// to get the code that will replace KENT.
//If the document does not contain any content, terminate the translation.
if ( inStr.length <= 0 ){
return "";
}
// As long as start, which is equal to the location in inStr of the
// KENT tag, is not equal to -1 (that is, as long as there is another
// KENT tag in the document)
while (start != -1){
// Copy everything up to the start of the KENT tag.
// This is very important, as translators should never change
// anything other than the markup that is to be translated.
outStr = inStr.substring(0, start);
// Replace the KENT tag with the translated HTML, wrapped in special
// locking tags. For more information on the replacement operation, see
// the comments in the replaceKentTag() function.
outStr = outStr + replCode;
// Copy everything after the KENT tag.
outStr = outStr + inStr.substring(start+6);
// Use the string you just created for the next trip through
// the document. This is the most inefficient part of all.
inStr = outStr;
start = inStr.indexOf('<kent>');
}
// When there are no more KENT tags in the document, return outStr.
return outStr;
}
/**********************************************************
* The replaceKentTag() function assembles the HTML that will *
* replace the KENT tag and the special locking tags that will *
* surround the HTML. It calls the getImage() function to *
* determine the SRC of the IMG tag.*
**********************************************************/
310
Chapitre 16
000ExtendingDWU.book Page 311 Thursday, June 8, 2000 3:38 PM
function replaceKentTag(){
// The image to display.
var image = getImage();
// The location of the image on the local disk.
var depFiles = dreamweaver.getSiteRoot() + image;
// The IMG tag that will be inserted between the lock tags.
var imgTag = '<IMG SRC="/' + image + '" WIDTH="320" HEIGHT="240" ALT="Kent">\n';
// The first part of the opening lock tag. The remainder of the tag is assembled below.
var start = '<MM:BeginLock translatorClass="DREAMWEAVER_TEAM" type="kent"';
// The closing lock tag.
var end = '<MM:EndLock>';
//Assemble the lock tags and the replacement HTML.
var replCode = start + ' depFiles="' + depFiles + '"';
replCode = replCode + ' orig="%3Ckent%3E">\n';
replCode = replCode + imgTag;
replCode = replCode + end;
return replCode;
}
/**********************************************************
* The getImage() function determines which image to display*
* based on the day of the week, the time of day and the *
* user's platform. The day and time are figured based on UTC *
* time (Greenwich Mean Time) minus 8 hours, which gives*
* Pacific Standard Time (PST). No allowance is made for Daylight *
* Savings Time in this routine.*
**********************************************************/
function getImage(){
var today = new Date();// Today's date & time.
var day = today.getUTCDay();// The day of the week in the GMT time zone.
// 0=Sunday, 1=Monday, and so on.
var hour = today.getUTCHours();// The current hour in GMT, based on the
// 24-hour clock.
var SFhour = hour - 8;// The time in San Francisco, based on the
// 24-hour clock.
var platform = navigator.platform;// The user's platform. All Windows machines
// are identified by Dreamweaver as "Win32",
// all Macs as "MacPPC".
var imageRef; // The image reference to be returned.
// If SFhour is negative, you have two adjustments to make.
// First, you have to subtract one from the day count because it is already the wee
// hours of the next day in GMT. Second, you have to add SFhour to 24 to
// give a valid hour in the 24-hour clock.
if (SFhour < 0){
day = day - 1;
// If setting the day count back one would make it negative, it's Saturday,
// so set the count to 6.
if (day < 0){
day = 6;
}
Traducteurs de données
311
000ExtendingDWU.book Page 312 Thursday, June 8, 2000 3:38 PM
SFhour = SFhour + 24;
}
// Now determine which photo to show based on whether it's a workday or a
// weekend; what time it is; and, if it's a time and day when Kent is
// working, what platform the user is on.
//If it's not Sunday
if (day != 0){
//And it's between 10am and noon, inclusive
if (SFhour >= 10 && SFhour <= 12){
imageRef = "images/kent_tiredAndIrritated.jpg";
//Or else it's between 1pm and 3pm, inclusive
}else if (SFhour >= 13 && SFhour <= 15){
imageRef = "images/kent_hungry.jpg";
//Or else it's between 4pm and 5pm, inclusive
}else if (SFhour >= 16 && SFhour <= 17){
//If user is on Mac, show Kent working on Mac
if (platform == "MacPPC"){
imageRef = "images/kent_gettingStartedOnMac.jpg";
//If user is on Win, show Kent working on Win
}else{
imageRef = "images/kent_gettingStartedOnWin.jpg";
}
//Or else it's after 6pm but before the stroke of midnight
}else if (SFhour >= 18){
//If it's Saturday
if (day == 6){
imageRef = "images/kent_dancing.jpg";
//If it's not Saturday, check the user's platform
}else if (platform == "MacPPC"){
imageRef = "images/kent_hardAtWorkOnMac.jpg";
}else{
imageRef = "images/kent_hardAtWorkOnWin.jpg";
}
}else{
imageRef = "images/kent_sleeping.jpg";
}
//If it's after midnight and before 10am, or anytime on Sunday
}else{
imageRef = "images/kent_sleeping.jpg";
}
return imageRef;
}
</script>
</head>
<body>
</body>
</html>
312
Chapitre 16
000ExtendingDWU.book Page 313 Thursday, June 8, 2000 3:38 PM
Création d'un inspecteur de propriétés pour le contenu verrouillé
Une fois que vous avez créé un traducteur, vous devez créer un inspecteur de
propriétés pour le contenu afin que l'utilisateur puisse modifier ses propriétés (par
exemple, le fichier à inclure ou l'une des conditions d'une instruction
conditionnelle). L'inspection du contenu traduit est un problème unique pour
plusieurs raisons :
L'utilisateur peut avoir besoin de modifier les propriétés du contenu traduit et
ces modifications doivent être répercutées dans le contenu non traduit.
Le DOM contient le contenu traduit (c'est-à-dire que les balises de verrouillage
et les balises qu'elles englobent sont des nœuds dans le DOM), mais la
propriété outerHTML de documentElement et des fonctions
dreamweaver.getSelection() et dreamweaver.nodeToOffsets() agit sur la source non
traduite.
Les balises que vous inspectez sont différentes avant et après la traduction.
Si l'utilisateur peut désactiver votre traducteur et si les balises non traduites ne
sont pas déjà traitées par un autre inspecteur, créez deux inspecteurs de propriétés,
un pour la ou les balises non traduites et un pour la région verrouillée créée par la
traduction. Les interfaces des deux inspecteurs peuvent être identiques, mais le
commentaire figurant au début du fichier et les fonctions canInspectSelection() et
inspectSelection() doivent être différents.
Par exemple, l'inspecteur de la balise HAPPY peut avoir un commentaire du type
suivant :
<!-- tag:HAPPY,priority:5,selection:exact,hline,vline -->
Mais l'inspecteur de la balise HAPPY traduite aura le commentaire suivant :
<!-- tag:*LOCKED*,priority:5,selection:within,hline,vline -->
La fonction canInspectSelection() de l'inspecteur HAPPY non traduit est simple : le
type de sélection étant exact, elle peut renvoyer la valeur TRUE sans autre analyse.
Cette fonction est plus compliquée pour l'inspecteur HAPPY traduit ; le mot-clé
*LOCKED* indique que l'inspecteur est approprié lorsque la sélection se trouve dans
une région verrouillée, mais un document pouvant contenir plusieurs régions
verrouillées, d'autres vérifications doivent être effectuées pour déterminer si
l'inspecteur correspond à cette région verrouillée particulière.
Cependant, l'inspection du contenu traduit pose un autre problème. Lorsque vous
appelez dom.getSelection(), les valeurs renvoyées par défaut représentent des
décalages dans le code source non traduit. Pour développer la sélection
correctement afin que la région verrouillée (et seulement la région verrouillée) soit
sélectionnée, utilisez la méthode suivante :
var currentDOM = dw.getDocumentDOM();
var offsets = currentDOM.getSelection();
var theSelection = currentDOM.offsetsToNode(offsets[0],offsets[0]+1);
Traducteurs de données
313
000ExtendingDWU.book Page 314 Thursday, June 8, 2000 3:38 PM
L'utilisation d'offsets[0]+1 comme deuxième argument garantit que vous restez
dans la balise de verrouillage d'ouverture lorsque vous convertissez les décalages en
nœud. Si vous utilisez offsets[1] comme deuxième argument, vous risquez de
sélectionner le nœud au-dessus du verrou.
Une fois que vous avez la sélection (après avoir au préalable vérifié qu'il s'agit du
nœud node.ELEMENT_NODE), vous pouvez inspecter l'attribut type pour savoir si la
région verrouillée correspond à cet inspecteur. Par exemple :
if (theSelection.nodeType == node.ELEMENT_NODE && theSelection.getAttribute('type')
== 'happy'){
return true;
}else{
return false
}
Pour renseigner les champs de l'inspecteur pour la balise traduite, vous devez
analyser la valeur de l'attribut orig. Par exemple, si le code non traduit est <HAPPY
TIME="22"> et si l'inspecteur de propriétés contient un champ intitulé Time, vous
devez extraire la valeur de l'attribut TIME de la chaîne orig.
function inspectSelection() {
var currentDOM = dw.getDocumentDOM();
var currSelection = currentDOM.getSelection();
var theObj = currentDOM.offsetsToNode(curSelection[0],curSelection[0]+1);
if (theObj.nodeType != Node.ELEMENT_NODE) {
return;
}
// To convert the encoded characters back to their
// original values, use the unescape() method.
var origAtt = unescape(theObj.getAttribute("ORIG"));
// Convert the string to lower case for processing
var origAttLC = origAtt.toLowerCase();
var timeStart = origAttLC.indexOf('time="');
var timeEnd = origAttLC.indexOf('"',timeStart+6);
var timeValue = origAtt.substring(timeStart+6,timeEnd);
document.layers['timelayer'].document.timeForm.timefield.value = timeValue;
}
Après avoir analysé l'attribut orig pour renseigner les champs de l'inspecteur de
propriétés de la balise traduite, votre premier mouvement sera probablement de
définir la valeur de l'attribut orig si l'utilisateur modifie la valeur de l'un des
champs. Ce n'est cependant pas la meilleure méthode car vous risquez d'être
bloqué par la restriction interdisant d'effectuer des modifications dans une région
verrouillée. Pour éviter ce problème, modifiez le marquage d'origine, puis
retraduisez.
314
Chapitre 16
000ExtendingDWU.book Page 315 Thursday, June 8, 2000 3:38 PM
L'inspecteur de propriétés des inclusions à partir du serveur (Configuration/
Inspectors/ssi_translated.js) indique cette méthode dans sa fonction setComment(). Au
lieu de réécrire l'attribut orig, l'inspecteur assemble un nouveau commentaire SSI,
puis il insère ce commentaire dans le document à la place du précédent en rédigeant à
nouveau tout le contenu du document, ce qui génère un nouvel attribut orig. Le code
suivant résume cette méthode :
// Assemble the new include comment. radioStr and URL are
// variables defined earlier in the code.
newInc = "<!--#include " + radioStr + "=" + '"' + URL + '"' +" -->";
// Get the contents of the document.
var entireDocObj = dreamweaver.getDocumentDOM();
var docSrc = entireDocObj.documentElement.outerHTML;
// Store everything up to the SSI comment and everything after
// the SSI comment in the beforeSelStr and afterSelStr variables.
var beforeSelStr = docSrc.substring(0, curSelection[0] );
var afterSelStr = docSrc.substring(curSelection[1]);
// Assemble the new contents of the document.
docSrc = beforeSelStr + newInc + afterSelStr;
// Set the outerHTML of the HTML tag (represented by
// the documentElement object) to the new contents,
// and then set the selection back to the locked region
// surrounding the SSI comment.
entireDocObj.documentElement.outerHTML = docSrc;
entireDocObj.setSelection(curSelection[0], curSelection[0]+1);
Recherche de bogues dans un traducteur
Si la fonction translateMarkup() contient certains types d'erreurs, le traducteur se
charge correctement, mais se bloque en silence lorsqu'il est appelé. Même si ce
blocage silencieux ne rend pas Dreamweaver instable, il peut gêner le
développement, en particulier lorsque vous essayez de trouver une petite erreur de
syntaxe dans 10, 20 ou 30 lignes de code.
Si le traducteur se bloque, une méthode de débogage efficace consiste à
transformer le traducteur en commande, comme suit :
1
Copiez le contenu intégral du fichier de traduction dans un nouveau document
et enregistrez-le dans le dossier Configuration/Commands à l'intérieur du
dossier de l'application Dreamweaver.
Traducteurs de données
315
000ExtendingDWU.book Page 316 Thursday, June 8, 2000 3:38 PM
2
En haut du document, entre les balises SCRIPT, ajoutez la fonction suivante :
function commandButtons(){
return new Array( "OK","translateMarkup(dreamweaver.getDocumentPath('document'),
dreamweaver.getSiteRoot(),
dreamweaver.getDocumentDOM().documentElement.outerHTML);
window.close()", "Cancel", "window.close()");
}
3
A la fin de la fonction translateMarkup(), mettez en commentaire la ligne return
whateverTheReturnValueIs et remplacez-la par
dreamweaver.getDocumentDOM().documentElement.outerHTML =
whateverTheReturnValueIs. Par exemple :
// return theCode;
dreamweaver.getDocumentDOM().documentElement.outerHTML = theCode;
}
/* end of translateMarkup() */
4
Dans le corps (BODY) du document, ajoutez un formulaire sans champ d'entrée.
Par exemple :
<body>
<form>
Hello.
</form>
</body>
5
Relancez Dreamweaver, puis choisissez votre « commande de traduction » dans
le menu Commandes. Lorsque vous cliquez sur OK, la fonction
translateMarkup() est appelée et simule la traduction.
Si vous ne voyez pas de message d'erreur mais que la traduction se bloque
quand même, le code contient probablement une erreur de logique.
6
Ajoutez des instructions alert() à des endroits stratégiques de la fonction
translateMarkup() pour avoir la certitude que vous atteignez les branches
appropriées, afin de vérifier les valeurs des variables et des propriétés en
différents points. Par exemple :
for (var i=0; i< foo.length; i++){
alert("we're at the top of the foo.length array, and the value of i is " + i);
/* rest of loop */
}
7
316
Chapitre 16
Après avoir ajouté les instructions alert(), choisissez votre commande dans le
menu, cliquez sur Annuler et choisissez-la de nouveau. Le fichier de
commandes se recharge avec vos modifications.
000ExtendingDWU.book Page 317 Thursday, June 8, 2000 3:38 PM
17
CHAPITRE 17
Modèles de serveur
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les modèles de serveur sont des techniques permettant d'exécuter des scripts sur
un serveur. En définissant un site avec Dreamweaver UltraDev, les utilisateurs
identifient le modèle de serveur qu'ils appliquent à ce site. Un modèle de serveur
est spécifié pour l'ensemble d'un site. UltraDev utilise ce modèle pour déterminer
le code approprié à utiliser lorsque l'utilisateur ajoute des éléments dynamiques
aux pages du site.
Tous les modèles de serveur résident dans le dossier ServerModels contenu dans le
dossier Configuration. Chaque modèle de serveur possède son propre fichier :
ASP 2.0, Cold Fusion 4.0 et JSP 1.0.
Fonctions API des modèles de serveur
UltraDev utilise les fonctions getServerLanguages(), getFileExtensions() et
getVersionArray() pour déterminer les options à présenter à l'utilisateur dans l'onglet
Infos du serveur d'application de la boîte de dialogue Définition du site.
getFileExtensions()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie les extensions des fichiers avec lesquels un modèle de serveur peut
fonctionner. Par exemple, le modèle de serveur ASP prend en charge les extensions
de fichier .asp et .htm. Cette fonction renvoie une table de chaînes ; UltraDev
utilise ces chaînes pour compléter la liste Extension de page par défaut contenue
dans la catégorie Infos du serveur d'application de la boîte de dialogue Définition
du site.
Arguments
Aucun.
Renvoie
Une table de chaînes représentant les extensions de fichier autorisées.
317
000ExtendingDWU.book Page 318 Thursday, June 8, 2000 3:38 PM
getServerLanguages()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Renvoie les langages de script d'un modèle de serveur pris en charge. Cette
fonction renvoie une table de chaînes ; UltraDev utilise ces chaînes pour
compléter la liste Langage de script par défaut contenue dans la catégorie Infos
du serveur d'application de la boîte de dialogue Définition du site.
Un modèle de serveur peut prendre en charge plusieurs langages de script. Par
exemple, le modèle de serveur ASP prend en charge JavaScript et VBScript.
Arguments
Renvoie
Aucun.
Une table de chaînes représentant les langages de script pris en charge.
getVersionArray()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Met en correspondance les technologies de serveur avec les numéros de version.
Cette fonction est appelée par dom.serverModel.getServerVersion().
Arguments
Aucun.
Renvoie
Une table d'objets de version, chacun portant un nom et une valeur de version :
ASP version 2.0
ADODB version 2.1
318
Chapitre 17
000ExtendingDWU.book Page 319 Thursday, June 8, 2000 3:38 PM
18
CHAPITRE 18
Sources de données
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tous les fichiers de sources de données résident dans le dossier DataSources
contenu dans le dossier Configuration. Un sous-répertoire a été créé pour chaque
modèle de serveur : ASP, ColdFusion et JSP. Le sous-dossier de chaque modèle
contient des fichiers HTML associés aux sources de données de ce modèle de
serveur.
Les fonctions de l'API de source de données vous permettent de manipuler les
options des menus plus (+) de l'inspecteur de liaisons de données et des boîtes de
dialogue Données dynamiques et Texte dynamique.
Fonctionnement des sources de données
Les utilisateurs d'UltraDev ajoutent des données dynamiques par l'intermédiaire
des boîtes de dialogue Données dynamiques ou Texte dynamique ou de
l'inspecteur de liaisons de données. Les objets de données dynamiques affichés
dans le menu contextuel plus (+) de ces éléments d'interface dépendent du
modèle de serveur spécifié pour le site. Par exemple, les utilisateurs peuvent insérer
des jeux d'enregistrements, des commandes, des variables de demande, de session
ou d'application pour les applications ASP.
Les étapes suivantes décrivent la procédure d'ajout de données dynamiques :
1
Lorsque l'utilisateur clique sur le bouton plus (+) des boîtes de dialogue
Données dynamiques ou Texte dynamique ou de l'inspecteur de liaisons de
données, le menu contextuel s'affiche.
Pour déterminer le contenu du menu, UltraDev commence par rechercher un
fichier DataSources.xml dans le même dossier que les sources de données (par
exemple, \Configuration\DataSources\ASP\DataSources.xml). Le fichier
DataSources.xml décrit le contenu du menu contextuel ; il renvoie aux fichiers
HTML devant être placés dans le menu contextuel.
319
000ExtendingDWU.book Page 320 Thursday, June 8, 2000 3:38 PM
UltraDev recherche une balise de titre dans chaque fichier HTML référencé. Si
le fichier contient une balise de titre, le contenu de celle-ci est affiché dans le
menu. Dans le cas contraire, c'est le nom du fichier qui s'affiche dans le menu.
Si le répertoire contient des sous-répertoires, les fichiers de ces derniers sont
ajoutés au menu sous forme de sous-menus.
Une fois qu'UltraDev a fini de manipuler le fichier DataSources.xml ou si ce
fichier n'existe pas, UltraDev analyse le reste du dossier pour y trouver d'autres
éléments devant figurer dans le menu. Si UltraDev trouve dans le dossier
principal des fichiers qui ne figurent pas encore dans le menu, il les y ajoute. S'il
existe des sous-dossiers contenant des fichiers qui ne figurent pas encore dans le
menu, UltraDev crée un sous-menu et y ajoute ces fichiers.
2
Lorsque l'utilisateur choisit une option du menu plus (+), UltraDev appelle la
fonction addDynamicSource(), afin que le code de la source de données soit ajouté
au document de l'utilisateur.
3
Ensuite, UltraDev parcourt chaque fichier du dossier du modèle de serveur
approprié (par exemple, le dossier \Configuration\DataSources\ASP), en
appelant l'implémentation de findDynamicSources() dans chacun. Pour chaque
valeur de la table renvoyée, UltraDev appelle la fonction
generateDynamicSourceBindings() dans le même fichier. Par exemple,
l'implémentation contenue dans Recordset.htm (ou Recordset.js) est chargée
de trouver tous les jeux d'enregistrements de la page ; les implémentations
contenues dans d'autres fichiers sont chargées des autres types de sources de
données.
Ainsi, UltraDev appelle findDynamicSources() et generateDynamicSourceBindings()
pour obtenir une liste à jour de toutes les sources de données associées au
document de l'utilisateur. Ces sources de données sont présentées à l'utilisateur
de façon hiérarchique, c'est-à-dire sous forme d'une arborescence dans les
boîtes de dialogue Données dynamiques ou Texte dynamique ou dans
l'inspecteur de liaisons de données. Par exemple, l'arborescence des sources de
données d'un document ASP peut se présenter comme suit :
Recordset (Recordset1)
ColumnOneInRecordset
ColumnTwoInRecordset
Recordset (Recordset2)
ColumnOfRecordset
Request
NameOfRequestVariable
NameOfAnotherRequestVariable
Session
NameOfSessionVariable
320
Chapitre 18
000ExtendingDWU.book Page 321 Thursday, June 8, 2000 3:38 PM
4
Si l'utilisateur clique sur le bouton moins (-), UltraDev extrait le nœud
sélectionné de l'arborescence des sources de données et le transmet à
deleteDynamicSource(), qui supprime le code ajouté précédemment avec
addDynamicSource(). Si la suppression de la sélection en cours n'est pas logique,
la fonction renvoie un message d'erreur dans certaines conditions. Une fois
deleteDynamicSource() terminée, UltraDev actualise l'arborescence des sources de
données en appelant les fonctions findDynamicSources() et
generateDynamicSourceBindings().
5
Si l'utilisateur choisit une source de données et clique sur le bouton OK dans la
boîte de dialogue Données dynamiques ou Texte dynamique ou sur le bouton
Insertion ou Lier de l'inspecteur de liaisons de données, UltraDev appelle la
fonction generateDynamicDataRef(). La valeur renvoyée est insérée dans le
document au point d'insertion actuel.
6
Si l'utilisateur affiche la boîte de dialogue Données dynamiques ou Texte
dynamique pour modifier un objet de données dynamiques existant, cet objet
doit être sélectionné dans l'arborescence de la source de données. Pour
initialiser l'arborescence, UltraDev parcourt chaque fichier du dossier du
modèle de serveur approprié (par exemple, le dossier
\Configuration\DataSources\ASP), en appelant l'implémentation de
inspectDynamicDataRef() dans chacun.
Cette fonction reconvertit le code représentant l'objet de données dynamiques
en un élément de l'arborescence dans le document de l'utilisateur (c'est
l'opération inverse de celle de la fonction generateDynamicDataRef()). Si
inspectDynamicDataRef() renvoie une table contenant deux éléments, UltraDev
fournit une indication visuelle en signalant l'élément de l'arborescence lié à la
sélection en cours.
7
Chaque fois que l'utilisateur modifie sa sélection, UltraDev appelle la fonction
inspectDynamicDataRef() pour déterminer si la nouvelle sélection est un texte
dynamique ou une balise comportant un attribut dynamique. Si elle est
dynamique, UltraDev affiche les liaisons de la sélection en cours dans
l'inspecteur de liaisons de données.
8
En utilisant cet inspecteur ou les boîtes de dialogue Données dynamiques ou
Texte dynamique, il est possible de modifier le format de données d'un objet
texte dynamique ou d'un attribut dynamique que l'utilisateur a déjà ajouté à la
page. Une fois le format modifié, UltraDev appelle la fonction
generateDynamicDataRef() pour extraire la chaîne à insérer dans le document de
l'utilisateur, puis transmet cette chaîne à formatDynamicDataRef() (dans l'API de
format de données). La chaîne renvoyée par formatDynamicDataRef() est insérée
dans le document.
Sources de données
321
000ExtendingDWU.book Page 322 Thursday, June 8, 2000 3:38 PM
API de source de données
addDynamicSource()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Ajoute une source de données dynamiques. Etant donné qu'il existe une
implémentation de cette fonction dans chaque fichier de source de données,
UltraDev appelle l'implémentation appropriée de la fonction addDynamicSource()
dès qu'une source de données est sélectionnée dans le menu plus (+).
Par exemple, pour les jeux d'enregistrements ou les commandes, UltraDev appelle
qui insère un nouveau
comportement de serveur dans le document. Pour les variables de demande, de
session et d'application, UltraDev affiche une boîte de dialogue HTML/
JavaScript pour recueillir le nom de la variable ; le comportement stocke alors ce
nom en vue d'une utilisation ultérieure.
dw.serverBehaviorInspectorpopupServerBehavior() ,
Une fois la fonction addDynamicSource() renvoyée, UltraDev efface le contenu de
l'arborescence de la source de données et appelle les fonctions findDynamicSources()
et generateDynamicSourceBindings() pour réalimenter cette arborescence.
Renvoie
Rien n'est renvoyé.
deleteDynamicSource()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Appelée lorsqu'un utilisateur d'UltraDev sélectionne une source de données dans
l'arborescence et clique sur le bouton moins (-). La fonction deleteDynamicSource()
affiche un message d'erreur dans certaines conditions. Par exemple, si un
utilisateur tente de supprimer la colonne d'un jeu d'enregistrements, un message
lui indique de supprimer plutôt le jeu d'enregistrements.
Ainsi, dans UltraDev, si la sélection est un jeu d'enregistrements ou une
commande, la fonction deleteDynamicSource() appelle
dw.serverBehaviorInspector.deleteServerBehavior() . Si la sélection est une variable de
demande, de session ou d'application, la fonction se souvient que la variable a été
supprimée et ne l'affiche plus par la suite. Une fois la fonction
deleteDynamicSource() renvoyée, UltraDev efface le contenu de l'arborescence des
sources de données et appelle les fonctions findDynamicSources() et
generateDynamicSourceBindings() pour obtenir une liste à jour de toutes les sources
de données associées au document de l'utilisateur.
Arguments
sourceName, bindingName
sourceName est le nom du nœud de niveau supérieur auquel le nœud enfant est
associé.
bindingName est le nom du nœud enfant.
Renvoie
322
Chapitre 18
Rien n'est renvoyé.
000ExtendingDWU.book Page 323 Thursday, June 8, 2000 3:38 PM
findDynamicSources()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie les nœuds de niveau supérieur de l'arborescence des sources de données
qui apparaît dans l'inspecteur de liaisons de données ou dans les boîtes de dialogue
Données dynamiques ou Texte dynamique. Chaque fichier de la source de
données contient une implémentation de la fonction findDynamicSources(). En
actualisant l'arborescence, UltraDev parcourt tous les fichiers du dossier
DataSources et appelle la fonction findDynamicSources() dans chacun d'entre eux.
Renvoie
Une table d'objets JavaScript. Chaque objet doit posséder au moins deux
attributs : title et imageFile. L'attribut title correspond au libellé situé à droite de
l'icône de chaque nœud parent. L'attribut imageFile est le chemin d'accès à un
fichier contenant l'icône (une image GIF) qui représente le nœud parent dans
l'inspecteur de liaisons de données ou dans les boîtes de dialogue Données
dynamiques ou Texte dynamique. Il existe un troisième attribut facultatif :
allowDelete. Si cet attribut a la valeur false, le bouton moins (-) est désactivé lorsque
l'utilisateur clique sur ce nœud dans l'inspecteur de liaisons de données. S'il a la
valeur true, le bouton moins (-) est activé. Si la propriété n'est pas définie, la valeur
par défaut est true.
generateDynamicDataRef()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Génère l'objet de données dynamiques pour un nœud enfant.
Arguments
sourceName, bindingName
sourceName est le nom du nœud de niveau supérieur associé au nœud enfant.
bindingName est le nom du nœud enfant à partir duquel vous souhaitez générer
un objet de données dynamiques.
Renvoie
Une chaîne, qui peut être passée à formatDynamicDataRef() pour être mise en forme
avant d'être insérée dans un document d'utilisateur.
generateDynamicSourceBindings()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Renvoie le nœud enfant d'un nœud de niveau supérieur.
Arguments
sourceName
est le nom du nœud de niveau supérieur dont les nœuds enfants
doivent être renvoyés.
sourceName
Sources de données
323
000ExtendingDWU.book Page 324 Thursday, June 8, 2000 3:38 PM
Renvoie
Une table d'objets JavaScript. Chaque objet doit posséder au moins deux
propriétés : title et imageFile. L'attribut title correspond au libellé situé à droite de
l'icône de chaque nœud parent. L'attribut imageFile est le chemin d'accès à un
fichier contenant l'icône (une image GIF) qui représente l'élément dans
l'inspecteur de liaisons de données ou les boîtes de dialogue Données dynamiques
ou Texte dynamique. Il existe un troisième attribut facultatif : allowDelete. Si cet
attribut a la valeur false, le bouton moins (-) est désactivé lorsque l'utilisateur
clique sur ce nœud dans l'inspecteur de liaisons de données. S'il a la valeur true, le
bouton moins (-) est activé. Si la propriété n'est pas définie, la valeur par défaut est
true.
inspectDynamicDataRef()
Disponibilité
Description
Dreamweaver UltraDev 1.0
A partir d'un objet de données dynamiques, détermine le nœud correspondant
dans l'arborescence des sources de données. La fonction inspectDynamicDataRef()
compare la chaîne transmise à la chaîne renvoyée par generateDynamicDataRef() pour
chacun des nœuds de l'arborescence. En cas de correspondance, la fonction
inspectDynamicDataRef() indique quel nœud de l'arborescence correspond à la chaîne
transmise. La fonction identifie le nœud au moyen d'une table contenant deux
éléments. Le premier élément est le nom du nœud parent ; le second est le nom du
nœud enfant. Si aucune correspondance n'est trouvée, inspectDynamicDataRef()
renvoie une table vide.
Chaque implémentation de inspectDynamicDataRef() ne recherche que les
correspondances de son propre type d'objet. Par exemple, l'implémentation de la
fonction inspectDynamicDataRef() pour les jeux d'enregistrements ne trouve une
correspondance que si la chaîne transmise correspond à un nœud de jeu
d'enregistrements dans l'arborescence.
Arguments
string
string désigne
Renvoie
324
Chapitre 18
l'objet de données dynamiques.
Une table de deux éléments (nom parent et nom enfant) pour le nœud
correspondant ; la valeur null si aucune correspondance n'est trouvée.
000ExtendingDWU.book Page 325 Thursday, June 8, 2000 3:38 PM
19
CHAPITRE 19
Mise en forme des données
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dreamweaver UltraDev permet aux utilisateurs d'insérer des données dynamiques
dans un document HTML, en introduisant une expression serveur à l'endroit
approprié dans le document de l'utilisateur. Lorsque le serveur web demande ce
document, l'expression est convertie dans une valeur de base de données, dans le
contenu d'une variable de demande ou dans une autre valeur dynamique.
Vous pouvez modifier le format des données dynamiques avant de les insérer dans
un document HTML en utilisant le menu déroulant Format des boîtes de
dialogue Données dynamiques ou Texte dynamique, ou dans l'inspecteur de
liaisons de données. Pour créer un format, choisissez la commande Modifier la
liste de formats du menu Format, puis un type de format dans le menu plus (+).
Ce menu contient une liste de types de format, appartenant à des catégories de
base (Devise, Date/Heure, Casse, etc.). Les types de format regroupent tous les
paramètres communs à une catégorie, ce qui vous simplifie la tâche lorsque vous
en créez un.
Supposons que vous vouliez créer un format de devise. En général, mettre en
forme des devises revient à convertir un nombre en une chaîne, à insérer des
virgules décimales et un symbole de devise (le signe dollar $ par exemple). Le type
de données du format Devise regroupe tous les paramètres communs et vous
demande une valeur pour chacun d'eux. Lorsque vous créez un format Devise,
vous n'avez donc pas à vous soucier de tous les paramètres à prévoir ; il vous suffit
d’entrer les valeurs demandées.
Les utilisateurs d'UltraDev peuvent mettre en forme des données en utilisant des
formats prédéfinis, ou bien créer des formats à partir de types prédéfinis ou qu'ils
ont créés eux-mêmes.
325
000ExtendingDWU.book Page 326 Thursday, June 8, 2000 3:38 PM
Organisation de la mise en forme des données
Tous les fichiers de format se trouvent dans le répertoire ServerFormats du dossier
Configuration. Chaque modèle de serveur possède son propre sous-répertoire :
ASP, JSP et ColdFusion. Chaque sous-répertoire contient un fichier XML et
plusieurs fichiers HTML.
Le fichier XML (Formats.xml) décrit tous les choix du menu Format. UltraDev
ajoute automatiquement les options Aucun et Modifier la liste de formats.
Le répertoire contient également un fichier HTML pour chaque type de format
installé. Les types de format sont les suivants : Casse, Devise, Date/Heure, Math,
Nombre, Pourcentage, Simple et Rogner.
Fichier Formats.xml
Ce fichier contient une balise <format> pour chaque élément du menu Format,
chacune contenant les attributs obligatoires suivants :
file=fileName, qui désigne le fichier HTML de ce type de format. Exemple :
« Devise ».
title=string, qui désigne la chaîne du menu Format. Exemple : « Devise - par
défaut ».
expression=regexp, qui est une expression régulière correspondant aux objets de
données dynamiques qui utilisent ce format. Cette expression permet de
connaître le format appliqué à un objet de données dynamiques. L'expression
correspondant au format « Devise - par défaut », par exemple, serait
« <%\s*=\s*FormatCurrency\(.*, -1, -2, -2, -2\)\s*%>|<%\s*=\s*DoCurrency\(.*, -1, -2,
-2, -2\)\s*%> ». La valeur de l'attribut d'expression doit être unique dans toutes
les balises <format> du fichier ; elle doit être suffisamment précise pour garantir
que seules les instances de ce format correspondent à l'expression.
visibility=[hidden | visible], qui indique si la valeur est affichée ou non dans le
menu Format. Si la valeur de visibility est hidden (masquée), le format ne s'affiche
pas dans le menu Format.
La balise <format> peut éventuellement contenir des attributs supplémentaires
ayant un nom arbitraire.
Certaines fonctions de mise en forme de données nécessitent un argument, format,
qui est un objet JavaScript. Cet objet est le nœud correspondant à la balise
<format> dans le fichier Formats.xml. Il doit avoir une propriété JavaScript pour
chaque attribut de la balise <format> correspondante.
326
Chapitre 19
000ExtendingDWU.book Page 327 Thursday, June 8, 2000 3:38 PM
Exemple de balise <format> pour « Devise - par défaut » :
<format file="Devise" title="Devise - par défaut"
expression="<%\s*=\s*FormatCurrency\(.*, -1, -2, -2, -2\)\s*%>|
<%\s*=\s*DoCurrency\(.*, -1, -2, -2, -2\)\s*%>"
NumDigitsAfterDecimal=-1 IncludeLeadingDigit=-2 UseParensForNegativeNumbers=-2
GroupDigits=-2/>
Dans ce cas, le type de format est Devise. La chaîne « Devise - par défaut » s'affiche
dans le menu déroulant Format. L'expression « <%\s*=\s*FormatCurrency\(.*, -1, -2, -2, 2\)\s*%>|<%\s*=\s*DoCurrency\(.*, -1, -2, -2, -2\)\s*% » est utilisée pour trouver des
occurrences de ce format dans le document de l'utilisateur.
NumDigitsAfterDecimal, IncludeLeadingDigit, UseParensForNegativeNumbers et
GroupDigits sont des paramètres facultatifs du type de format Devise. Ils s'affichent
dans la boîte de dialogue Paramètres pour le type de format Devise. La boîte de
dialogue Paramètres apparaît lorsqu'un utilisateur choisit le type de format Devise
dans le menu contextuel plus (+) de la boîte de dialogue Modifier la liste de
formats. Les valeurs indiquées pour ces paramètres sont utilisées pour définir le
nouveau format.
Menu plus (+) de la boîte de dialogue Modifier la liste de formats
Pour qu'un fichier du dossier ServerFormats ne s'affiche pas dans le menu plus (+)
de la boîte de dialogue Modifier la liste de formats, ajoutez l'instruction suivante
de manière à ce qu'elle devienne la première ligne du fichier HTML :
<!-- MENU-LOCATION=NONE -->
Pour déterminer le contenu du menu, UltraDev commence par rechercher un
fichier ServerFormats.xml dans le même dossier que les sources de données (par
exemple, \Configuration\ServerFormats\ASP\ServerFormats.xml). Le fichier
ServerFormats.xml décrit le contenu du menu plus (+) ; il renvoie aux fichiers
HTML devant être placés dans ce menu.
UltraDev recherche une balise de titre dans chaque fichier HTML référencé. Si le
fichier contient une balise de titre, le contenu de celle-ci est affiché dans le menu ;
dans le cas contraire, c'est le nom du fichier qui s'affiche. Si le répertoire contient
des sous-répertoires, les fichiers de ces derniers sont ajoutés au menu sous forme
de sous-menus.
Une fois qu'UltraDev a fini de manipuler le fichier ServerFormats.xml ou si ce
fichier n'existe pas, UltraDev analyse le reste du dossier pour y trouver d'autres
éléments devant figurer dans le menu. Si UltraDev trouve dans le dossier principal
des fichiers qui ne figurent pas encore dans le menu, il les y ajoute. S'il existe des
sous-dossiers contenant des fichiers qui ne figurent pas encore dans le menu,
UltraDev crée un sous-menu et y ajoute ces fichiers.
Mise en forme des données
327
000ExtendingDWU.book Page 328 Thursday, June 8, 2000 3:38 PM
Mise en application des fonctions de mise en
forme des données
Les fonctions de mise en forme de données sont appelées dans les situations
suivantes :
Dans la boîte de dialogue Données dynamiques ou Texte dynamique, ou dans
l'inspecteur de liaisons de données, choisissez un nœud à partir de
l'arborescence des sources de données et un format dans le menu déroulant
Format. Lorsque le format est sélectionné, UltraDev appelle
generateDynamicDataRef(), puis passe la valeur renvoyée de
generateDynamicDataRef() à formatDynamicDataRef(). La valeur renvoyée de
formatDynamicDataRef() s'affiche dans le paramètre Code de la boîte de dialogue.
Cliquez sur OK pour insérer la chaîne de code dans le document ainsi qu'à
l'emplacement du point d'insertion (curseur). UltraDev appelle ensuite la
fonction applyFormat() pour insérer une déclaration de fonction. Voir
« generateDynamicDataRef() » à la page 323 pour de plus amples informations. Un
processus semblable a lieu si vous utilisez l'inspecteur de liaisons de données.
La modification d'un format ou la suppression d'un élément de données
dynamiques appelle la fonction deleteFormat(), qui supprime les scripts
correspondants du document.
Lorsque vous cliquez sur le bouton plus (+) dans la boîte de dialogue Modifier
la liste de formats, UltraDev affiche un menu contenant tous les types de
format pour le modèle de serveur utilisé. Chaque type correspond à un fichier
du dossier Configuration\ServerFormats\[ModèleServeur].
Si vous choisissez un format dans le menu plus (+) qui nécessite un paramètre
spécifié par l'utilisateur, UltraDev soumet la balise « body » au gestionnaire
onload, puis ouvre la boîte de dialogue Paramètres, qui affiche les paramètres de
ce type de format. Dans cette boîte de dialogue, choisissez les paramètres du
format et cliquez sur OK.UltraDev appelle alors la fonction
applyFormatDefinition().
Si le format choisi ne nécessite pas l'affichage d'une boîte de dialogue
permettant de choisir des paramètres, la fonction applyFormatDefinition() est
appelée lorsque vous choisissez le type de format dans le menu plus (+).
Si vous modifiez ultérieurement le format en le sélectionnant dans le menu
plus (+), UltraDev appelle la fonction inspectFormatDefinition() avant d'afficher la
boîte de dialogue Paramètres afin que les contrôles du formulaire puissent être
initialisés avec des valeurs correctes.
328
Chapitre 19
000ExtendingDWU.book Page 329 Thursday, June 8, 2000 3:38 PM
API de mise en forme de données
applyFormat()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Ajoute une déclaration de mise en forme de fonction au document de l'utilisateur.
Lorsque vous choisissez un format dans le champ Format de la boîte de dialogue
Données dynamiques ou Texte dynamique ou de l'inspecteur de liaisons de
données, UltraDev effectue deux modifications dans le document : il ajoute la
fonction de format au-dessus de la balise HTML (si elle n'y est pas déjà) et
modifie l'objet de données dynamiques de manière à ce que la fonction de format
appropriée soit appelée.
UltraDev ajoute la déclaration de fonction en appelant la fonction JavaScript
dans le fichier de format des données. Il réalise la seconde
modification en appelant la fonction formatDynamicDataRef().
applyFormat()
La fonction applyFormat() doit se servir du modèle d'objet de document
(Document Object Model) afin d'ajouter des déclarations de fonction au début
du document de l'utilisateur. Par exemple, si vous avez choisi « Devise - par
défaut », la fonction ajoute la déclaration de la fonction Devise.
Cette fonction peut modifier un document de l'utilisateur.
Arguments
format
est un objet JavaScript qui décrit le format à appliquer. Cet objet est le
nœud correspondant à la balise <format> dans le fichier Formats.xml. Il doit avoir
une propriété JavaScript pour chaque attribut de la balise <format>
correspondante.
format
Renvoie
Rien n'est renvoyé.
applyFormatDefinition()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Applique les modifications à un format créé avec la boîte de dialogue Modifier le
format.
Les utilisateurs peuvent créer, modifier ou supprimer des formats dans la boîte de
dialogue Modifier la liste de formats. Cette fonction est appelée pour appliquer
toutes les modifications réalisées. Elle peut également définir d'autres propriétés,
nommées arbitrairement, pour l'objet. Chaque propriété est stockée en tant
qu'attribut de la balise <format> dans le fichier Formats.xml.
Mise en forme des données
329
000ExtendingDWU.book Page 330 Thursday, June 8, 2000 3:38 PM
Arguments
format
est un objet JavaScript correspondant à ce format. Cette fonction doit faire
de la propriété expression de l'objet JavaScript l'expression régulière du format. Elle
peut également définir d'autres propriétés, nommées arbitrairement, pour l'objet.
Chaque propriété est stockée en tant qu'attribut de la balise <format>.
format
Renvoie
L'objet du format est renvoyé, si la fonction est correctement appliquée. En cas
d'erreur, la fonction renvoie une chaîne d'erreur. Si elle renvoie une chaîne vide, le
formulaire est fermé mais le format n'est pas créé, ce qui revient à annuler
l'opération.
deleteFormat()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Supprime la déclaration de fonction du format au début du document de
l'utilisateur.
Lorsque vous modifiez le format d'un objet de données dynamiques (dans
l'inspecteur de liaisons des données ou dans la boîte de dialogue Données
dynamiques ou Texte dynamique) ou effacez l'un de ces objets, UltraDev
supprime la déclaration de fonction au début du document, ainsi que l'appel de
fonction de l'objet en appelant la fonction deleteFormat().
Cette fonction doit se servir du modèle d'objet de document pour supprimer la
déclaration de fonction au début du document.
Arguments
format
est un objet JavaScript qui décrit le format à supprimer. Cet objet est le
nœud correspondant à la balise <format> dans le fichier Formats.xml.
format
Renvoie
Rien n'est renvoyé.
formatDynamicDataRef()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Ajoute à l'objet de données dynamiques l'appel de la fonction de format. Lorsque
vous choisissez un format dans le champ Format de la boîte de dialogue Données
dynamiques ou Texte dynamique ou de l'inspecteur de liaisons de données,
UltraDev effectue deux modifications dans le document de l'utilisateur : il ajoute
la fonction de format appropriée au-dessus de la balise HTML (si elle n'y est pas
déjà) et modifie l'objet de données dynamiques de manière à ce que la fonction de
format appropriée soit appelée.
UltraDev ajoute la déclaration de fonction en appelant la fonction JavaScript
applyFormat() dans le fichier de format des données. Il réalise la seconde
modification en appelant la fonction formatDynamicDataRef().
330
Chapitre 19
000ExtendingDWU.book Page 331 Thursday, June 8, 2000 3:38 PM
Cette fonction est appelée lorsque l'utilisateur choisit un format dans le champ
Format de l'inspecteur de liaisons de données ou de la boîte de dialogue Données
dynamiques ou Texte dynamique. Elle ne modifie pas le document de
l'utilisateur.
Arguments
dynamicDataObject, format
dynamicDataObject est une chaîne contenant l'objet de données dynamiques.
format est un objet JavaScript qui décrit le format à appliquer.
Renvoie
La nouvelle valeur de l'objet de données dynamiques est renvoyée.
En cas d'erreur, la fonction affiche un message d'alerte dans certaines conditions.
Si la fonction renvoie une chaîne vide, le champ Format prend la valeur Aucun.
inspectFormatDefinition()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Initialise les contrôles de formulaire lorsqu'un utilisateur essaie de modifier un
format existant dans la boîte de dialogue Modifier la liste de formats.
Arguments
format
format
Renvoie
est un objet JavaScript correspondant à ce format.
Rien n'est renvoyé.
Mise en forme des données
331
000ExtendingDWU.book Page 332 Thursday, June 8, 2000 3:38 PM
332
Chapitre 19
000ExtendingDWU.book Page 333 Thursday, June 8, 2000 3:38 PM
20
CHAPITRE 20
Comportements de serveur
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pour créer des applications web, les utilisateurs de Dreamweaver UltraDev
utilisent des comportements de serveur afin de générer les fonctionnalités requises,
telles que le filtrage des enregistrements à partir des critères utilisateur, la
consultation des enregistrements, la liaison de listes de résultats à des pages
d'informations détaillées et l'insertion des enregistrements dans un jeu de
résultats. Les comportements de serveur étant écrits en HTML et en JavaScript,
vous pouvez également en créer.
Un comportement de serveur se compose d'une ou de plusieurs balises insérées
dans le document de l'utilisateur. Généralement, au moins une de ces balises est
un marqueur de serveur, par exemple une directive ASP. Pour que l'inspecteur de
comportements de serveur prenne en charge de nouveaux comportements, vous
devez écrire du code JavaScript afin d'insérer ces balises dans le document de
l'utilisateur. Vous devez également écrire du code pour rechercher des instances de
votre comportement dans un document HTML existant.
L'API de comportement de serveur vous permet de définir de nouveaux
comportements. Pour appliquer ou supprimer des comportements aux documents
de l'utilisateur, UltraDev appelle les fonctions dans cet API.
Répertoire ServerBehaviors
Tous les fichiers de comportement de serveur se trouvent dans le répertoire
ServerBehaviors du dossier Configuration. Un sous-répertoire a été créé pour
chaque modèle de serveur : ASP, ColdFusion et JSP. Chaque sous-répertoire de
modèle de serveur contient des fichiers HTML associés aux comportements de
serveur du modèle, ces derniers étant généralement intégrés au menu plus (+) de
l'inspecteur de comportements de serveur.
333
000ExtendingDWU.book Page 334 Thursday, June 8, 2000 3:38 PM
Par exemple, le fichier Insert Record.htm du dossier
\Configuration\ServerBehaviors\ASP, correspond au comportement Insérer
l'enregistrement du menu (+) de l'inspecteur de comportements de serveur
lorsque le modèle de serveur sélectionné pour votre site est ASP.
Objet JavaScript de comportement de serveur
Lorsque votre code JavaScript trouve des instances d'un comportement dans le
document de l'utilisateur, il en informe UltraDev en créant un objet JavaScript
pour chaque instance. Cet objet est aussi appelé ssRecord. Votre comportement
doit définir des propriétés pour chaque objet, pour indiquer à UltraDev de quelle
manière afficher le comportement dans l'inspecteur de comportements de serveur.
En outre, nombre de fonctions API de comportement de serveur considèrent
comme un argument un objet JavaScript représentant un comportement. Le
comportement de serveur peut stocker des informations d'état sous la forme de
propriétés JavaScript de l'objet.
UltraDev exige les quatre propriétés suivantes. Si elles ne sont pas spécifiées, une
erreur peut se produire. Vous pouvez également définir d'autres propriétés pour
l'objet, si nécessaire.
permet à UltraDev de déterminer si une partie de
comportement est manquante. Si la valeur de la propriété est true, l'inspecteur de
comportements de serveur affiche un point d'exclamation (!) en regard du
comportement. Ce point d'exclamation indique qu'une partie du comportement
est manquante ; le comportement peut ne pas s'exécuter correctement dans un
navigateur.
La propriété incomplete
La propriété participants permet à UltraDev d'indiquer quels nœuds
appartiennent à un comportement. Cette propriété est traduite sous forme d'une
table dans laquelle chaque élément est un pointeur vers un nœud du document de
l'utilisateur. Chaque fois que l'utilisateur modifie un document, UltraDev
recherche dans la liste des participants les comportements de serveur du
document. Si le participant d'un comportement de serveur donné a été modifié,
UltraDev appelle la fonction findServerBehaviors() afin de générer un nouvel objet
JavaScript. La table des participants sert à déclencher un appel à la fonction
findServerBehaviors() à chaque fois qu'une partie du comportement de serveur est
modifiée. L'appel de la fonction findServerBehaviors() permet de déterminer si
certaines parties du comportement sont manquantes ; si tel est le cas, la propriété
incomplete prend la valeur true. Si les modifications apportées à une balise donnée
risquent de rompre le script ou la balise que vous insérez dans le document de
l'utilisateur, nous vous conseillons de transformer cette balise en participant. Voir
findServerBehaviors() pour plus d'informations.
334
Chapitre 20
000ExtendingDWU.book Page 335 Thursday, June 8, 2000 3:38 PM
est utilisée par UltraDev comme titre du comportement dans
l'inspecteur de comportements de serveur. Si la valeur de la propriété est une
chaîne, elle apparaît dans la liste de l'inspecteur de comportements de serveur. Si
la propriété n'est pas indiquée, UltraDev utilise à la place la balise de titre du
comportement de serveur.
La propriété title
La propriété selectedNode est utilisée par UltraDev pour effectuer le suivi des
sélections. Lorsqu'un élément est sélectionné dans la liste, l'objet selectedNode
figurant sur la page est sélectionné. Si un utilisateur choisit un objet sur une page
et que cet objet correspond au nœud sélectionné pour un comportement de
serveur, ce comportement est sélectionné dans l'inspecteur de comportements de
serveur.
Pour mettre en œuvre le suivi des sélections, chaque instance d'un comportement
de serveur doit correspondre à une balise dans le document de l'utilisateur.
Généralement, cette balise est un script ASP (ou JSP) ; par exemple, le
comportement Région répétée correspond à l'objet de contour sur la page.
Toutefois, un comportement peut être associé à tout objet de la page ; par
exemple, le comportement Déplacer vers l'enregistrement suivant est souvent
couplé avec un objet lien.
Un comportement de serveur définit la balise qui lui correspond en faisant pointer
la propriété selectedNode de l'objet JavaScript (représentant le comportement) vers
la balise. Si plusieurs comportements définissent la même balise selectedNode, le
fait de sélectionner cette balise dans l'affichage entraîne la sélection de tous ces
comportements.
Comment appeler les fonctions API de
comportement de serveur
Ces fonctions sont appelées dans les situations suivantes :
La fonction findServerBehaviors() est appelée à l'ouverture du document et à
chaque fois qu'un participant est modifié. Elle parcourt le document de
l'utilisateur à la recherche d'instances d'elle-même. Pour chaque instance
trouvée, findServerBehaviors() crée un objet JavaScript et lui attache des
informations d'état sous la forme de propriétés JavaScript.
Comportements de serveur
335
000ExtendingDWU.book Page 336 Thursday, June 8, 2000 3:38 PM
Si elle est implémentée, UltraDev appelle la fonction analyzeServerBehavior() pour
chaque comportement trouvé dans le document de l'utilisateur une fois que
toutes les fonctions findServerBehaviors() ont été appelées.
Lorsque la fonction findServerBehaviors() crée un objet de comportement, elle
définit généralement les quatre propriétés (incomplete, participants, selectedNode
et title). Cependant, il est parfois plus simple de retarder la définition de
certaines propriétés jusqu'à ce que tous les autres comportements de serveur
aient trouvé des instances d'eux-mêmes. Par exemple, le comportement
Déplacer vers l'enregistrement suivant possède deux participants : un objet lien
et un objet jeu d'enregistrements. Au lieu de trouver l'objet jeu
d'enregistrements dans sa fonction findServerBehaviors(), il est plus facile
d'attendre l'exécution de cette fonction, étant donné que le jeu
d'enregistrements va trouver toutes les instances de lui-même.
Lorsque la fonction analyzeServerBehavior() du comportement Déplacer vers
l'enregistrement suivant est appelée, une table contenant tous les
comportements de serveur du document lui est transmise. La fonction peut
consulter la table pour trouver son objet de jeu d'enregistrements, puis ajouter
ce dernier à la table de son participant.
Il arrive, au cours de l'analyse, qu'une balise unique contenue dans le document
de l'utilisateur soit identifiée par deux ou plusieurs comportements comme
étant une instance de ces comportements. Par exemple, la fonction
findServerBehaviors() pour le comportement Attribut dynamique peut détecter
une instance du comportement Attribut dynamique associée à une balise
<input> dans le document de l'utilisateur. Simultanément, la fonction
findServerBehaviors() pour le comportement Champ de texte dynamique peut
avoir examiné la même balise <input> et détecté une instance du
comportement Champ de texte dynamique.
Si rien n'est fait pour remédier à ce problème, l'inspecteur de comportements
de serveur répertorie à la fois les comportements Attribut dynamique et Champ
de texte dynamique, c'est-à-dire que deux comportements sont répertoriés pour
la même balise dans le document utilisateur. Pour corriger ce problème, les
fonctions analyzeServerBehavior() doivent supprimer tous ces comportements de
serveur redondants, à l'exception d'un seul.
Pour supprimer un comportement de serveur, une fonction
analyzeServerBehavior() peut définir la propriété deleted d'un comportement de
serveur comme true. Si la propriété deleted est toujours true lorsqu'UltraDev a
fini d'appeler les fonctions analyzeServerBehavior(), le comportement est
supprimé de la liste.
336
Chapitre 20
000ExtendingDWU.book Page 337 Thursday, June 8, 2000 3:38 PM
Lorsque l'utilisateur clique sur le bouton plus (+) de l'inspecteur de
comportements de serveur, le menu contextuel s'affiche.
Pour déterminer le contenu du menu, UltraDev commence par rechercher un
fichier ServerBehaviors.xml dans le même répertoire que celui des
comportements (par exemple, \Configuration\ServerBehaviors\ASP). Le fichier
ServerBehaviors.xml référence les fichiers HTML dont la balise de titre ou le
nom de fichier figureront dans le menu contextuel.
Si le fichier HTML référencé contient une balise de titre (title), le contenu de
cette balise s'affiche dans le menu. Par exemple, si le fichier
ServerBehaviors\ASP\GetRecords.htm contient la balise <title>Obtenir plus
d'enregistrements</title>, le texte Obtenir plus d'enregistrements s'affichera
dans le menu.
Dans le cas contraire, c'est le nom du fichier qui s'affiche. Par exemple, si le
fichier ServerBehaviors\ASP\GetRecords.htm ne contenait pas de balise de
titre, GetRecords apparaîtrait dans le menu.
Si le dossier contient des sous-répertoires, les fichiers de ces derniers sont
ajoutés au menu sous forme de sous-menus.
S'il n'y a pas de fichier ServerBehaviors.xml ou si le répertoire contient un ou
plusieurs fichiers HTML non mentionnés dans ServerBehaviors.xml, UltraDev
recherche une balise « title » dans chaque fichier et fait figurer dans le menu le
nom de cette balise ou celui du fichier.
Si vous ne voulez pas qu'un fichier du répertoire ServerBehaviors apparaisse
dans le menu, ajoutez l'instruction suivante de manière à ce qu'elle devienne la
première ligne du fichier HTML :
<!-- MENU-LOCATION=NONE -->
La fonction canApplyServerBehavior() est appelée lorsque l'utilisateur sélectionne
un élément dans le menu. Si cette fonction renvoie la valeur true, la boîte de
dialogue s'affiche. Lorsque l'utilisateur clique sur OK, la fonction
applyServerBehavior() est appelée.
Si l'utilisateur modifie un comportement de serveur existant en double-
cliquant dessus, UltraDev affiche la boîte de dialogue Paramètres, soumet la
balise « body » au gestionnaire onLoad, puis appelle la fonction
inspectServerBehavior() pour rechercher les comportements existants en cours de
modification. La fonction inspectServerBehavior() renseigne les éléments du
formulaire avec les valeurs des paramètres courants. Lorsque l'utilisateur clique
sur OK, UltraDev appelle à nouveau la fonction applyServerBehavior().
Si l'utilisateur clique sur le bouton moins (-), UltraDev appelle la fonction
deleteServerBehavior(),
qui supprime les comportements correspondants du
document.
Comportements de serveur
337
000ExtendingDWU.book Page 338 Thursday, June 8, 2000 3:38 PM
Lorsque l'utilisateur sélectionne un comportement de serveur et appuie sur
Ctrl+C (ou Ctrl+X), UltraDev transmet l'objet de comportement représentant
le comportement de serveur à sa fonction copyServerBehavior(). Cette fonction
ajoute à l'objet de comportement toutes les propriétés supplémentaires
nécessaires à son collage ultérieur.
Une fois la fonction copyServerBehavior() renvoyée, UltraDev convertit l'objet de
comportement en un formulaire qui peut être placé dans le Presse-papiers.
Pendant la conversion de l'objet, UltraDev supprime toutes les propriétés
constituant des pointeurs vers des objets ; toute propriété de l'objet autre qu'un
nombre, une valeur booléenne ou une chaîne est perdue.
Lorsque l'utilisateur colle le comportement de serveur à l'aide de la
combinaison de touches Ctrl+V, UltraDev décompresse le contenu du Pressepapiers et génère un nouvel objet de comportement. Ce nouvel objet est
identique à l'original, sauf qu'il ne contient aucune propriété de pointeur.
UltraDev transmet le nouvel objet de comportement à la fonction
pasteServerBehavior(), qui ajoute le comportement au document de l'utilisateur.
Une fois la fonction pasteServerBehavior() renvoyée, UltraDev appelle la fonction
findServerBehaviors() pour obtenir une nouvelle liste de tous les comportements
de serveur présents dans le document de l'utilisateur.
Les utilisateurs peuvent copier et coller des comportements d'un document à
un autre. En fait, il est possible de copier et coller des comportements d'une
session à l'autre, c'est-à-dire qu'un utilisateur peut copier un comportement,
quitter UltraDev, redémarrer UltraDev, puis coller le comportement. Pour
échanger des informations, les fonctions copyServerBehavior() et
pasteServerBehavior() doivent se baser uniquement sur les propriétés de l'objet de
comportement.
API de comportement de serveur
analyzeServerBehavior()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Permet aux comportements de serveur de définir leurs indicateurs incomplete et
deleted.
Une fois que la fonction findServerBehaviors() a été appelée pour chaque
comportement de serveur de la page, le document de l'utilisateur contient une
table de tous les comportements. La fonction analyzeServerBehavior() est appelée
pour chaque objet JavaScript contenu dans cette table. Par exemple, pour un
comportement Texte dynamique, UltraDev appelle la fonction
analyzeServerBehavior() dans DynamicText.htm (ou DynamicText.js).
338
Chapitre 20
000ExtendingDWU.book Page 339 Thursday, June 8, 2000 3:38 PM
L'un des rôles de la fonction analyzeServerBehavior() est de terminer la définition de
toutes les propriétés (incomplete, participants, selectedNode et title) sur l'objet de
comportement (il est parfois plus facile d'effectuer cette tâche une fois que la
fonction findServerBehaviors() a généré la liste complète des comportements de
serveur dans le document de l'utilisateur).
L'autre but de la fonction analyzeServerBehavior() est de remarquer lorsque deux ou
plusieurs comportements se rapportent à la même balise dans le document de
l'utilisateur. Dans ce cas, la propriété deleted est utilisée pour supprimer tous les
comportements de la table, à l'exception d'un seul.
Voici un exemple de la manière dont analyzeServerBehavior() fonctionne :
Supposons qu'il y ait trois comportements de serveur sur une page : Recordset1,
DynamicText1 et DynamicText2. Il faut que Recordset1 existe sur la page pour les
deux comportements de serveur DynamicText pour qu’ils soient considérés
comme terminés. Une fois que tous les comportements de serveur ont été trouvés
avec findServerBehaviors(), la fonction analyzeServerBehavior() est appelée pour ces trois
comportements. Lorsque la fonction analyzeServerBehavior() est appelée pour
DynamicText1, elle recherche, dans la table de tous les objets de comportement de
serveur, celui qui appartient à Recordset1. Si elle ne trouve pas l'objet JavaScript
de comportement de serveur appartenant à Recordset1, la propriété incomplete est
définie comme true afin qu'un point d'exclamation soit affiché dans l'inspecteur
des comportements de serveur, signalant ainsi un problème à l'utilisateur. De
même, lorsque la fonction analyzeServerBehavior() est appelée pour DynamicText2,
elle recherche l'objet JavaScript appartenant à Recordset1. Recordset1 ne
dépendant pas des autres comportements de serveur, il n'a pas besoin de définir la
fonction analyzeServerBehavior() dans cet exemple.
Arguments
behavior, [behaviorArray]
behavior est un objet JavaScript représentant le comportement à analyser.
[behaviorArray] est une table d'objets JavaScript représentant l'ensemble des
comportements de serveur trouvés sur une page.
Renvoie
Rien n'est renvoyé.
applyServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Lit les valeurs des éléments de formulaire dans la boîte de dialogue Paramètres et
ajoute le comportement au document de l'utilisateur. UltraDev appelle cette
fonction lorsque l'utilisateur clique sur OK dans la boîte de dialogue Paramètres.
Si cette fonction est renvoyée correctement, la boîte de dialogue Paramètres est
fermée. Si cette fonction échoue, elle affiche le message d'erreur sans fermer la
boîte de dialogue Paramètres. Cette fonction peut modifier un document de
l'utilisateur.
Arguments
behavior | null
Comportements de serveur
339
000ExtendingDWU.book Page 340 Thursday, June 8, 2000 3:38 PM
behavior est un objet JavaScript représentant le comportement, transmis si un
comportement existant est modifié.
null est transmis si un nouveau comportement est ajouté.
Renvoie
Une chaîne vide en cas de succès. Si cette fonction échoue, elle affiche le message
d'erreur sans fermer la boîte de dialogue Paramètres.
canApplyServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Parcourt le document de l'utilisateur afin de déterminer si un comportement peut
être appliqué ou non. UltraDev appelle cette fonction avant d'afficher la boîte de
dialogue Paramètres. Si la fonction renvoie la valeur true, la boîte de dialogue
Paramètres s'affiche à l'écran. Si elle renvoie false, la boîte de dialogue Paramètres
ne s'affiche pas et la tentative d'ajout d'un comportement de serveur est
interrompue.
Arguments
behavior | null
behavior est un objet JavaScript représentant le comportement, transmis si un
comportement existant est modifié.
null est transmis si un nouveau comportement est ajouté.
Renvoie
true
est renvoyé si le format peut être appliqué, sinon false.
copyServerBehavior()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Lorsqu'elle est mise en œuvre, cette fonction permet aux utilisateurs de copier des
instances du comportement de serveur spécifié. Elle est mise en œuvre pour les
jeux d'enregistrements, par exemple. Si un utilisateur sélectionne un jeu
d'enregistrements dans l'inspecteur de comportements de serveur ou dans
l'inspecteur de liaisons de données, la combinaison des touches Ctrl+C copie le
comportement dans le Presse-papiers ; Ctrl+X le coupe. Ctrl+C et Ctrl+X n'ont
aucun effet pour les comportements de serveur qui n'implémentent pas cette
fonction. L'utilisation de copyServerBehavior() n'est pas obligatoire. Pour plus
d'informations, voir « Comment appeler les fonctions API de comportement de
serveur » à la page 335.
La fonction copyServerBehavior() ne doit reposer que sur des propriétés d'objet de
comportement qui peuvent être converties en chaînes pour échanger des
informations avec la fonction pasteServerBehavior(). Le Presse-papiers ne stockant
que du texte brut, les nœuds participant dans le document doivent être résolus et le
texte brut résultant doit être enregistré en propriété secondaire.
Arguments
behavior
behavior
340
Chapitre 20
est un objet JavaScript représentant le comportement.
000ExtendingDWU.book Page 341 Thursday, June 8, 2000 3:38 PM
Renvoie
true
si le comportement a été copié avec succès dans le Presse-papiers, sinon false.
deleteServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Cette fonction supprime le comportement du document de l'utilisateur. Elle est
appelée lorsque l'on clique sur le bouton moins (-) de l'inspecteur de
comportements de serveur et permet de modifier un document de l'utilisateur.
Arguments
behavior
behavior
Renvoie
est un objet JavaScript représentant le comportement.
Une chaîne vide en cas de succès. En cas d'échec, la fonction renvoie une chaîne
d'erreur, qui s'affiche dans une boîte de dialogue d'erreur.
findServerBehaviors()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Cette fonction parcourt le document de l'utilisateur à la recherche d'instances
d'elle-même. Pour chaque instance trouvée, findServerBehaviors() crée un objet
JavaScript et lui attache des informations d'état sous la forme de propriétés
JavaScript. Les quatre propriétés requises sont incomplete, participants, title et
selectedNode. Vous pouvez définir d'autres propriétés en fonction de vos besoins.
UltraDev appelle cette fonction après l'exécution d'un traducteur ou chaque fois
qu'un participant est modifié. Voir la section « Fonctionnement des traducteurs de
données » à la page 298 pour plus d'informations sur les traducteurs de données.
Arguments
Aucun.
Renvoie
Une table d'objets JavaScript ; la longueur de la table équivaut au nombre
d'instances du comportement trouvées dans la page.
inspectServerBehavior()
Disponibilité
Dreamweaver UltraDev 1.0
Description
Détermine les réglages de la boîte de dialogue Paramètres en fonction de l'objet de
comportement spécifié. UltraDev appelle cette fonction lorsqu'un utilisateur
affiche la boîte de dialogue Paramètres et uniquement si celui-ci modifie un
comportement existant.
Arguments
behavior
est un objet JavaScript représentant le comportement. Il s'agit du même
objet que celui renvoyé par findServerBehaviors() (appelée à l'ouverture du
document).
behavior
Renvoie
Rien n'est renvoyé.
Comportements de serveur
341
000ExtendingDWU.book Page 342 Thursday, June 8, 2000 3:38 PM
pasteServerBehavior()
Disponibilité
Description
Dreamweaver UltraDev 1.0
Lorsqu'elle est mise en œuvre, cette fonction permet aux utilisateurs de coller des
instances du comportement de serveur spécifié. Elle est utilisée avec
copyServerBehavior(). Lorsque l'utilisateur colle le comportement de serveur en
appuyant sur les touches Ctrl+V, UltraDev décompresse le contenu du Pressepapiers et génère un nouvel objet de comportement. Ce nouvel objet est identique
à l'original, sauf qu'il ne contient aucune propriété de pointeur. UltraDev
transmet le nouvel objet de comportement à pasteServerBehavior(). La fonction
pasteServerBehavior() repose sur les propriétés de l'objet de comportement pour
déterminer ce qu'il convient d'ajouter au document de l'utilisateur. La fonction
pasteServerBehavior() ajoute alors le comportement au document de l'utilisateur.
Une fois la fonction pasteServerBehavior() renvoyée, UltraDev appelle les fonctions
findServerBehaviors() pour obtenir une nouvelle liste des comportements de serveur
présents dans le document de l'utilisateur.
La mise en œuvre de la fonction pasteServerBehavior() n'est pas obligatoire. Pour
plus d'informations, voir « Comment appeler les fonctions API de comportement
de serveur » à la page 335.
Arguments
behavior
behavior
Renvoie
true
est un objet JavaScript représentant le comportement.
si le comportement a été collé avec succès depuis le Presse-papiers, sinon false.
Exemple de comportement de serveur
L'exemple de code de comportement de serveur ci-dessous permet d'insérer dans
la page de l'utilisateur un comportement redirigeant celle-ci vers une URL définie
par l'utilisateur si le jeu d'enregistrements choisi est vide. Cet exemple met en
œuvre la plupart des fonctions de comportement de serveur. Des commentaires
ont été insérés dans l'exemple, entre les lignes de code. L'exemple est suivi du code
342
Chapitre 20
000ExtendingDWU.book Page 343 Thursday, June 8, 2000 3:38 PM
HTML composant le fichier HTML devant être joint au fichier JavaScript.
// Copyright 2000 Macromedia, Inc. All rights reserved.
// This server behavior inserts a behavior on a user's page, which at
// runtime redirects to a different page if a recordset is
// empty. The user interface for this behavior allows the user to
// select the recordset to check and enter the redirect URL.
//*************** GLOBALS VARS *****************
// Global user interface control variables.
// These are initialized in the initializeUI() function below.
var LIST_RS;
var TEXT_URL;
// This variable is used to set the type of the node in the SSRecord.
// The type information stored within the SSRecord allows other server
// scripts to identify the scripts on the page.
// (See the buildSSRecord() function (below) for more information.)
var PROP_TYPE = "redirectIfEmptyRecordset";
// The following variables define the code for this behavior and define how
// to insert and detect that code. These variables are referenced in
// this example using the getServerData() function.
// The getServerData() function, located in the file
// Configuration/Shared/UltraDev/Scripts/ssDocManager.js, returns
// the value of a global variable based on the currently selected
// server model. This is useful for creating server behaviors
// that operate within multiple server models. If this is not
// necessary for your code, you can use the global variables directly
// in place of the function call. getServerData() will return a global
// variable of the form: <varType>_<serverModel><id>.
// For example, when the server model is set to ASP and JavaScript,
// a call like: getServerData("patt","Code"), would return the
// value of the global variable: PATT_AspJsCode. Please see the
// function definition in the ssDocManager.js file for more information.
// Define the code that should be inserted for this behavior. This is
// referred to as a mask, because it can contain tokens that need to be
// replaced before the code is inserted onto the page. In this example,
// tokens are delimited by '##' on either side of the token name. We have
// defined masks for both ASP/JavaScript and ASP/VBscript.
var MASK_AspJsCode = '<% if (##rs##.EOF) Response.Redirect("##url##"); %>';
Comportements de serveur
343
000ExtendingDWU.book Page 344 Thursday, June 8, 2000 3:38 PM
var MASK_AspVbCode = '<% If (##rs##.EOF) Then Response.Redirect("##url##"); %>';
// Define the patterns that will be used to identify code which belong
// to this server behavior on the page. These strings will become JavaScript
// regular expressions, which allow for a wide array of pattern matching
// options. Please refer to a JavaScript book, for more information
// on the use of JavaScript regular expressions.
var PATT_AspJsCode = '<%\\s*if\\s*\\((.*)\\.EOF\\)\\s*Response\\.Redirect\\(\\"(.*)\\"\\);\\s*%>';
var PATT_AspVbCode =
'<%\\s*If\\s*\\((.*)\\.EOF\\)\\s*Then\\s*Response\\.Redirect\\(\\"(.*)\\"\\);\\s*%>';
// Define the weight of the inserted code. This is used by the SSEdits class
// to determine where on the page to insert the code block. Weights can be of
// three different types. The first type is selection relative, which consists
// of the following values: "beforeSelection", "afterSelection", or
// "replaceSelection". The second type is node relative, which consists of the
// following values: "beforeNode", "afterNode", or "replaceNode". The final
// type is for code inserted above the opening <HTML> tag. This code is ordered
// numerically from 0 to 99. The recordset has a weight of 50, therefore
// giving this script has a weight of 51, places it just after the recordset
// definition.
var WGHT_AspCode = 51;
//******************* API **********************
//------------------------------------------------------------------------------// Called by UltraDev before the server behavior dialog is launched to determine
// if the behavior can be applied to the current page. Passed the JavaScript
// object returned by the findServerBehaviors() function (below) if this is an
// edited behavior. Return false if the behavior cannot be applied.
//
// If no recordsets are defined, alert the user, and return false to indicate
// that the server behavior cannot be applied at this time.
//------------------------------------------------------------------------------function canApplyServerBehavior(oldSSRec) {
var retVal = true;
// Call the function findAllRecordsets() to determine if any recordsets
// exist on the page. This function, located in file
// Configuration/Shared/UltraDev/Scripts/ssCmnElements.js, returns an
// array of recordset names.
if (findAllRecordsetNames().length == 0) { //if there are no recordsets
alert(MSG_NoRecordsets);
//alert the user of the problem
retVal = false;
//return false to indicate an error
344
Chapitre 20
000ExtendingDWU.book Page 345 Thursday, June 8, 2000 3:38 PM
}
return retVal;
}
//------------------------------------------------------------------------------// Called by UltraDev to identify the Server Behaviors on the current page.
// Returns an array of JavaScript objects, each one represents an instance
// of this server behavior on the current page.
//
// Creates a list of document nodes to search, and then determines if these
// represent an instance of this server behavior.
// Calls the function buildSSRecord(), located later in this file, to do the
// work of identifying the behavior elements and building the corresponding
// SSRecord object. Please refer to the buildSSRecord function for more
// information on the SSRecord object.
//------------------------------------------------------------------------------function findServerBehaviors() {
var ssRecList = new Array(); //the array of JavaScript objects to return
var dom = dw.getDocumentDOM(); //get the DOM of the current document to search
var ssRec;
//the object returned by buildSSRecord
// Calls the function findNodes() to find the server model specific tags
// on the page. This function, located in file
// Configuration/Shared/UltraDev/Scripts/ssCmnElements.js, returns an
// array of document nodes which represent the script blocks for the chosen
// server model (for example, all the tags beginning with '<%' in ASP).
var nodes = findNodes(dom);
for (var i=0; i < nodes.length; i++) { //loop through the document nodes
ssRec = buildSSRecord(nodes[i]);
//build the record for this node
if (ssRec) ssRecList.push(ssRec); //if valid, add it to the array
}
return ssRecList; //return the list of found behavior instances
//empty means there are none on the page
}
//------------------------------------------------------------------------------// Called by UltraDev when the user clicks OK in the Server Behavior dialog box,
// this adds the server behavior code to the page. Returns an error message if
// the behavior cannot be applied.
//
// Gets the values from the UI elements, and checks to make sure they are
// valid. If they are not valid, returns an error message, otherwise, calls
// the function buildSSEdits(), located below, to create a list
// of elements to insert on the page. This function returns an object of
Comportements de serveur
345
000ExtendingDWU.book Page 346 Thursday, June 8, 2000 3:38 PM
// type SSEdits, whose insert() method applies the list of edits to the
// current page. Please refer to the buildSSEdits function for more information
// on the SSEdits object.
//------------------------------------------------------------------------------function applyServerBehavior(priorRec) {
var retVal = "";
//the value to return
var editList;
//the list of page edits to make
var rs = LIST_RS.getValue();
var url = TEXT_URL.value;
if (url.length == 0) {
retVal = MSG_NeedUrl;
}
//the selected recordset
//the URL entered
//no URL entered
//sets the return value to the error message
if (!retVal) {
//if no error message
editList = buildSSEdits(priorRec,rs,url); //creates the list of edits
editList.insert();
//applies the edits to the page
}
return retVal;
//returns empty string or an error message
}
//------------------------------------------------------------------------------// Called by UltraDev when the user edits an existing behavior by double
// clicking in the server behavior inspector. Passed the JavaScript object
// returned by the findServerBehaviors() function (above) for the edited behavior.
// NOTE: This function is called after initializeUI() below.
//
// Displays the previously selected values for this behavior.
// These values can be pulled directly from the ssRec object created by
// the function buildSSRecord(). Displays an alert message if the selected
// recordset no longer exists on the page.
//------------------------------------------------------------------------------function inspectServerBehavior(ssRec) {
// Selects the specified recordset from the recordset list, using the
// pickValue() method of the ListControl class. This method returns true
// if the value was found, and false if it was not. Displays an alert
// if the recordset was not found.
var result = LIST_RS.pickValue(ssRec.rs);
if (!result) {
alert(MSG_RSNotFound);
}
TEXT_URL.value = ssRec.url;
}
346
Chapitre 20
//sets the text field to the URL value
000ExtendingDWU.book Page 347 Thursday, June 8, 2000 3:38 PM
//------------------------------------------------------------------------------// Called by UltraDev when the user chooses to remove a server behavior from
// the page. Passed the JavaScript object returned by the findServerBehaviors()
// function (above) for the behavior to delete. Returns true if successful.
//
// Calls a method of the SSRecord class, which handles the work of
// deleting participants. This method also ensures that only unreferenced
// participants are deleted. Please refer to the buildSSRecord function for more
// information on the SSRecord object.
//------------------------------------------------------------------------------function deleteServerBehavior(ssRec) {
ssRec.del(false); //deletes any unreferenced participants of this behavior
return true;
}
//***************** LOCAL FUNCTIONS ******************
//------------------------------------------------------------------------------// Called by the onLoad handler of the HTML page to initialize the controls
// within the dialog.
//
// Loads the recordset drop-down with the names of the recordsets on the page,
// and gets the document object for the URL text entry field.
//------------------------------------------------------------------------------function initializeUI() {
// Calls the function findAllRecordsets() to get the list of recordsets
// that exist on the page. This function, located in file
// Configuration/Shared/UltraDev/Scripts/ssCmnElements.js, returns an
// array of recordset names.
var rsNames = findAllRecordsetNames();
// Creates a new list control object. This object, located in file
// Configuration/Shared/MM/Scripts/Class/ListControlClass.js, was created
// by Macromedia to provide an easier way to work with select lists within
// Dreamweaver and UltraDev. The constructor takes the name of the select
// object set in the HTML. The setAll() method sets the name and value arrays
// of the select list. Please refer to the ListControlClass.js file for
// more information on working with the ListControl class.
LIST_RS = new ListControl("Recordset");
if (rsNames) LIST_RS.setAll(rsNames,rsNames);
// Get the document object for the URL text field
Comportements de serveur
347
000ExtendingDWU.book Page 348 Thursday, June 8, 2000 3:38 PM
TEXT_URL = document.theForm.Redirect;
}
//------------------------------------------------------------------------------// Called by the findServerBehaviors() function to identify document nodes
// that are the main participant for this server behavior. Passed a document
// node to check for a match. Returns a JavaScript object with the relevant
// information, if the given node is identified as the main participant.
// If a server behavior has multiple participants, this function would need
// to locate those elements and add them to the object. If this node is not
// the main participant, 'null' is returned.
//
// Get the text of the passed node, and see if it matches the pattern defined
// for this server behavior. If the pattern matches, create an SSRecord and
// add the information appropriate for the found code. The SSRecord class,
// located in file Configuration/Shared/UltraDev/Scripts/ssClasses.js,
// is used by UltraDev to determine how to display the behaviors in the Server
// Behavior inspector.
//------------------------------------------------------------------------------function buildSSRecord(node) {
var ssRec = null; //returned record, default is null
// Get the string which represents the HTML for the passed in node.
// Some tags are translated into locked nodes by UltraDev, for display
// purposes. These locked nodes have an 'ORIG' attribute which we check
// first to see if it exists. If it does exist, unescape the returned
// value, and use that as the tag string. If the 'ORIG' attribute is empty,
// get the outerHTML of the passed node, and use that as the tag string.
// The stripSpaces() function, located in file
// Configuration/Shared/MM/Scripts/CMN/string.js, removes any spaces from
// the beginning or end of the specified string.
var tagStr = node.getAttribute("ORIG");
if (tagStr) tagStr = unescape(tagStr);
else tagStr = stripSpaces(node.outerHTML);
// Get the pattern that will be used to detect instances of this behavior.
// Please see the global variable definitions at the top of the file
// for the definition of this pattern, and a description of the
// getServerData() function.
var pattern = getServerData("patt","Code");
// Use regular expressions to attempt to locate the pattern within
// the current node. The match function returns an array of values
// which include the matched expression, as well as any matched
// sub-expressions. Please refer to a JavaScript book for a more
// complete description of regular expressions, and their related
// functions.
348
Chapitre 20
000ExtendingDWU.book Page 349 Thursday, June 8, 2000 3:38 PM
var tokens = tagStr.match(RegExp(pattern,"i"));
if (tokens && tokens.length > 1) { //successful match. Construct SSRecord.
ssRec = new SSRecord(); //create an empty SSRecord object.
// Set the type of the behavior. The type information is used by
// this and other server behaviors to identify the behaviors on the
// page.
ssRec.type = PROP_TYPE;
// Set the selected node of the behavior. This information is used
// to determine what node to highlight within the document when this
// behavior is selected in the Server Behavior inspector.
ssRec.selectedNode = node;
// Add the current node as a participant of this behavior. If this
// behavior had multiple participants, they would all need to be added
// to this list. This information is used by UltraDev to determine
// what behaviors need notification of document edits.
ssRec.participants.push(node);
// Add the type of the participant to the types list. The type is
// used by server behaviors which share code to locate participants
// which already exist on the page. This list parallels the participants
// array.
ssRec.weights.push(getServerData("wght","Code"));
// The pattern for this behavior was written in such a way, that the
// recordset name and URL could be extracted from the list of tokens
// returned by the match function. These are stored on the SSRecord
// for later use within the behavior.
ssRec.types.push("Code");
// Add the weight of the participant to the weights list. The weight
// is used by the SSEdits class to correctly position newly inserted
// items. This list parallels the participants array.
// Please see the global variable definitions at the top of the file
// for the definition of this weight and a description of the
// getServerData() function.
ssRec.rs = tokens[1];
ssRec.url = tokens[2];
// Construct a title for this behavior. This is the title that will
// be displayed in the Server Behavior inspector for this behavior.
// The standard for these titles is to use the simple name of the
Comportements de serveur
349
000ExtendingDWU.book Page 350 Thursday, June 8, 2000 3:38 PM
// behavior, followed by any unique settings enclosed in parenthesis.
ssRec.title = LABEL_TitleRedirect + " (" + ssRec.rs + ", " + ssRec.url + ")";
// Set the incomplete flag for this behavior. The incomplete flag
// is used by UltraDev to determine whether or not to display an
// exclamation point next to the behavior in the Server Behavior
// inspector. The exclamation point indicates that a piece of the
// server behavior is missing or incorrectly defined.
// The function recordsetNameIsValid, located in file
// Configuration/Shared/Scripts/ssCmnElements.js, returns true if
// a recordset with the given name exists on the page. It returns
// false otherwise.
ssRec.incomplete = ( ssRec.participants.length != 1 ||
!recordsetNameIsValid(ssRec.rs) );
}
return ssRec; // return null, or the constructed SSRecord
}
//------------------------------------------------------------------------------// Called by the applyServerBehavior() function to build a list of the edits
// which are needed to insert or update the current server behavior. If this
// is updating an existing server behavior, the record for this behavior is
// passed. The other parameters are server behavior specific, and are used
// to construct the code which should be inserted on the page. Return a
// JavaScript object, which describes the required changes.
//
// If the prior record does not exist or if the prior record exists and
// the values have changed, adds a new edit to the SSEdits object. Replaces
// any values within the inserted code with the values passed in from
// the UI. The SSEdits class, located in file
// Configuration/Shared/UltraDev/Scripts/ssClasses.js, represents a list
// of edits that should be made to the page. This class uses the weight
// and insertion type of the various participants to correctly insert
// elements on the page.
//------------------------------------------------------------------------------function buildSSEdits(priorRec,rs,url) {
var editList = new SSEdits(); //create a new SSEdits object.
// Add, replace, or leave code chunk. If no prior node exists or
// if the values set in the UI for the recordset and URL differ from
// the existing behavior, add an edit to the list.
if (!priorRec || priorRec.rs != rs || priorRec.url != url) {
// The priorNode is passed to the edit list if we are re-editing a
// behavior so that the node can be replaced. If no priorNode
350
Chapitre 20
000ExtendingDWU.book Page 351 Thursday, June 8, 2000 3:38 PM
// exists, we pass false. In this example, we select the first
// item in our participants list as the priorNode. The participants
// array was constructed in the buildSSRecord() function above.
var priorNode = (priorRec) ? priorRec.participants[0] : false;
// Construct the code that will be inserted onto the page.
// Please see the global variable definitions at the top of the file
// for the definition of this mask, and a description of the
// getServerData() function.
var chunk = getServerData("mask","Code");
// The masks defined for this server behavior contain tokens which
// need to be replaced. The JavaScript replace method is used to
// replace the recordset and URL tokens with the values passed in
// from the UI.
chunk = chunk.replace(/##rs##/g,rs);
chunk = chunk.replace(/##url##/g,url);
// Get the weight of this element. The weight is used by the
// SSEdits class to correctly position newly inserted items.
// Please see the global variable definitions at the top of the file
// for the definition of this weight and a description of the
// getServerData() function.
var weight = getServerData("wght","Code");
// Add the constructed item to the edit list.
editList.add(chunk,priorNode,weight);
}
return editList; //return the list of edits
}
Comportements de serveur
351
000ExtendingDWU.book Page 352 Thursday, June 8, 2000 3:38 PM
The following HTML file should be included in the same folder as the JavaScript
file for the example to work properly:
<!-- search:"Response.Redirect" -->
<HTML>
<HEAD>
<SCRIPT SRC="Redirect if Empty Recordset.js"></SCRIPT>
<!-- Standard UltraDev Server Behavior includes -->
<SCRIPT SRC="../../Shared/UltraDev/Scripts/ssClasses.js"></SCRIPT>
<SCRIPT SRC="../../Shared/UltraDev/Scripts/ssDocManager.js"></SCRIPT>
<SCRIPT SRC="../../Shared/UltraDev/Scripts/ssCmnElements.js"></SCRIPT>
<!-- included for use of the ListControl class -->
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/UI.js"></SCRIPT>
<SCRIPT SRC="../../Shared/MM/Scripts/Class/ListControlClass.js"></SCRIPT>
<!-- included for the browseFile() function, used below -->
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/file.js"></SCRIPT>
<!-- included for the stripSpaces() function -->
<SCRIPT SRC="../../Shared/MM/Scripts/CMN/string.js"></SCRIPT>
<SCRIPT>
//--------------- LOCALIZEABLE GLOBALS --------------var LABEL_TitleRedirect = "Redirect If Empty Recordset";
var MSG_NoRecordsets = "Before using this Server Script, please create a Recordset.\n";
var MSG_RSNotFound = "The original recordset specified in this script was not found.";
var MSG_NeedUrl
= "Please enter a URL.";
//--------------- END LOCALIZEABLE --------------</SCRIPT>
<TITLE>Redirect If Empty Recordset</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html">
</HEAD>
<BODY onLoad="initializeUI()">
<FORM NAME="theForm" ACTION="">
<DIV ALIGN="center">
<TABLE BORDER=0>
<TR>
<TD ALIGN="right" VALIGN="baseline" NOWRAP>
Recordset:</TD>
<TD VALIGN="baseline" NOWRAP>
<SELECT NAME="Recordset" STYLE="width:230px">
<OPTION SELECTED>*** no Recordsets found</OPTION>
</SELECT>
</TD>
</TR>
<TR>
<TD ALIGN="right" VALIGN="baseline" NOWRAP>
Redirect URL:</TD>
<TD VALIGN="baseline" NOWRAP>
<INPUT TYPE="TEXT" NAME="Redirect" STYLE="width:230px">
352
Chapitre 20
000ExtendingDWU.book Page 353 Thursday, June 8, 2000 3:38 PM
<INPUT TYPE="BUTTON" VALUE="Browse..."
onClick="browseFile(document.theForm.Redirect)">
</TD>
</TR>
</TABLE>
</DIV>
</FORM>
</BODY>
</HTML>
Comportements de serveur
353
000ExtendingDWU.book Page 354 Thursday, June 8, 2000 3:38 PM
354
Chapitre 20
000ExtendingDWU.book Page 355 Thursday, June 8, 2000 3:38 PM
INDEX
A
activateurs
utilisation 40
valeur renvoyée 177
addBehavior() 42
dreamweaver.timelineInspector.addBehavior()
150
addDynamicSource() 322
addFrame() 150
addKeyframe() 151
addLinkToExistingFile() 128
addLinkToNewFile() 128
addObject() 151
addTimeline() 151
alert() 25
align() 105
analyzeServerBehavior() 338
applyBehavior() 286
applyCharacterMarkup() 77
applyCSSStyle() 55
applyFontMarkup() 77
applyFormat() 329
applyFormatDefinition() 329
applyHTMLStyle() 98
applyServerBehavior() 339
applyTemplate() 108
appName, propriété 29
appVersion, propriété 29
arguments
facultatifs 41
receiveArguments() 262
transmis depuis menuitem 259
arrange() 106
arrangeFloatingPalettes() 168
array, objet 25
arrowDown() 100
arrowLeft() 100
arrowRight() 100
arrowUp() 101
attributes, propriété 31
attributs traduits
individuel 302
inspection 306
multiple 303
recherche dans les balises 31
B
backspaceKey() 101
balises traduites, inspection 313
bases de données
commande d’arborescence 34
behaviorFunction() 287
blur() 25
body, propriété 30
boolean, objet 25
bringDWToFront() 213
bringFWToFront() 213
browseDocument() 60
browseForFileURL() 64
browseForFolderURL() 64
button, objet 25
C
canAcceptBehavior() 288
canAcceptCommand()
dans les commandes de menu 261
dans les commandes ordinaires 255
canAddFrame() 189
canAddKeyFrame() 189
canAddLinkToFile() 190
canAlign() 177
canApplyServerBehavior() 340
canArrange() 178
canChangeLink() 191
canChangeObject() 189
canCheckIn() 191
canCheckOut() 191
canClipCopy() 184
canClipCopyText() 178
canClipCut() 184
canClipPaste()
dom.canClipPaste() 178
dreamweaver.canClipPaste 185
canClipPasteText() 179
canConnect() 192
canConvertLayersToTable() 179
Index 355
000ExtendingDWU.book Page 356 Thursday, June 8, 2000 3:38 PM
canConvertTablesToLayers() 179
canDecreaseColspan() 179
canDecreaseRowspan() 179
canDeleteTableColumn() 180
canDeleteTableRow() 180
canEditNoFramesContent() 180
canEditSelection() 189
canExportCSS() 185
canFindLinkSource() 192
canFindNext() 185
canGet() 192
canIncreaseColspan() 180
canIncreaseRowspan() 181
canInsertTableColumns() 181
canInsertTableRows() 181
canInspectSelection() 271
canLocateInSite() 192
canMakeEditable() 193
canMakeNewEditableRegion() 181
canMakeNewFileOrFolder() 193
canMarkSelectionAsEditable() 182
canMergeTableCells() 182
canOpen() 193
canOpenInFrame() 186
canPlayPlugin() 182
canPlayRecordedCommand() 186
canPut() 193
canRecreateCache() 194
canRedo()
dom.canRedo() 182
dreamweaver.canRedo() 186
canRefresh() 194
canRemoveEditableRegion() 182
canRemoveFrame() 190
canRemoveKeyFrame() 190
canRemoveLink() 194
canRemoveObject() 190
canRevertDocument() 186
canSaveAll() 187
canSaveDocument() 187
canSaveDocumentAsTemplate() 187
canSaveFrameset() 187
canSaveFramesetAs() 188
canSelectAll() 188
canSelectNewer() 195
canSelectTable() 183
canSetLayout() 194
356
Index
canSetLinkHref() 183
canShowFindDialog() 188
canShowListPropertiesDialog() 183
canSplitFrame() 183
canSplitTableCell() 183
canStopPlugin() 184
canSynchronize() 195
canUndo()
dom.canUndo() 184
dreamweaver.canUndo() 188
canUndoCheckOut() 195
canViewAsRoot() 196
changeLink() 129
changeLinkSitewide() 129
changeObject() 151
checkbox, objet 25
checkIn() 129
checkLinks() 130
checkOut() 130
checkSpelling() 90
checkTargetBrowsers()
dom.checkTargetBrowsers() 90
site.checkTargetBrowsers() 130
childNodes, propriété
objets comment 33
objets document 30
objets tag 31
objets text 33
clearInterval() 25
clearSteps() 94
clearTemp() 220
clearTimeout() 25
clipCopy()
dom.clipCopy() 50
dreamweaver.clipCopy() 52
clipCopyText() 50
clipCut()
dom.clipCut() 50
dreamweaver.clipCut() 53
clipPaste()
dom.clipPasteText() 51
dreamweaver.clipPaste() 53
clipPasteText() 52
close()
MMNotes.close() 204
window.close() 25
closeDocument() 65
000ExtendingDWU.book Page 357 Thursday, June 8, 2000 3:38 PM
CloseNotesFile() 208
codes d'état 219
colonnes 227
extraction à partir des procédures stockées 230,
231
commandButtons()
dans les commandes de menu 261
dans les commandes ordinaires 255
commandes
ajout aux menus 258
API 254
exemple de code 256
expérience de l'utilisateur 253
commandes d’arborescence 34
commandes de démarrage 37
commandes de fermeture 37
commandes de grille variable 35
commandes de menu
API 261
exemple de code 264
expérience de l'utilisateur 259
comment, objet 33
comportements
API 286
exemple de code 293
expérience de l'utilisateur 284
fonctions d'aide 285
fonctions obligatoires 286
insertion de plusieurs fonctions 285
confirm() 25
connexions 229, 230
extraction d’une liste 228
noms 226
constantes de nœuds 29
contenu verrouillé, inspection 313
convertLayersToTable() 54
convertTablesToLayers() 55
convertTo30() 55
convertWidthsToPercent() 145
convertWidthsToPixels() 145
copy() 198
copyServerBehavior() 340
copySteps() 94
createDocument() 65
createFolder() 198
D
data, propriété
des objets comment 33
des objets httpReply 219
objets text 33
date, objet 25
decreaseColspan() 145
decreaseRowspan() 146
defineSites() 131
deleteBehavior() 289
deleteDynamicSource() 322
deleteFormat() 330
deleteKey() 102
deleteSelectedItem() 112
deleteSelectedStyle()
dreamweaver.cssStylePalette.deleteSelectedStyle()
56
dreamweaver.htmlStylePalette.deleteSelectedStyle()
98
dw.htmlStylePalette.deleteSelectedStyle() 98
deleteSelectedTemplate() 113
deleteSelection()
dom.deleteSelection() 77
dreamweaver.deleteSelection() 86
site.deleteSelection() 131
deleteServerBehavior() 341
deleteTableColumn() 146
deleteTableRow() 146
Design Notes
API C 207
API JavaScript 204
expérience de l'utilisateur 203
structure de fichiers 203
detachFromLibrary() 108
detachFromTemplate() 108
displayHelp()
dans les actions de comportement 289
dans les fichiers d'inspecteur de propriétés 272
dans les fichiers d'objet 250
document, objet
DOM de Netscape, propriétés et méthodes 25
DOM Niveau 1, propriétés et méthodes 30
documentEdited() 277
documentElement, propriété 30
doDeferredTableUpdate() 146
DOM
dans Dreamweaver 25
Index
357
000ExtendingDWU.book Page 358 Thursday, June 8, 2000 3:38 PM
dom, objet 40
Spécification DOM Niveau 1 25
dom.addBehavior() 42
dom.align() 105
dom.applyCharacterMarkup() 77
dom.applyCSSStyle() 55
dom.applyFontMarkup() 77
dom.applyHTMLStyle() 98
dom.applyTemplate() 108
dom.arrange() 106
dom.arrowDown() 100
dom.arrowLeft() 100
dom.arrowRight() 100
dom.arrowUp() 101
dom.backspaceKey() 101
dom.canAlign() 177
dom.canArrange() 178
dom.canClipCopyText() 178
dom.canClipPaste() 178
dom.canClipPasteText() 179
dom.canConvertLayersToTable() 179
dom.canConvertTablesToLayers() 179
dom.canDecreaseColspan() 179
dom.canDecreaseRowspan() 179
dom.canDeleteTableColumn() 180
dom.canDeleteTableRow() 180
dom.canEditNoFramesContent() 180
dom.canIncreaseColspan() 180
dom.canIncreaseRowspan() 181
dom.canInsertTableColumns() 181
dom.canInsertTableRows() 181
dom.canMakeNewEditableRegion() 181
dom.canMarkSelectionAsEditable() 182
dom.canMergeTableCells() 182
dom.canPlayPlugin() 182
dom.canRedo() 182
dom.canRemoveEditableRegion() 182
dom.canSelectTable() 183
dom.canSetLinkHref() 183
dom.canShowListPropertiesDialog() 183
dom.canSplitFrame() 183
dom.canSplitTableCell() 183
dom.canStopPlugin() 184
dom.canUndo() 184
dom.checkSpelling() 90
dom.checkTargetBrowsers() 90
dom.clipCopy 50
358
Index
dom.clipCopyText() 50
dom.clipCut() 50
dom.clipPaste 51
dom.clipPasteText() 52
dom.convertLayersToTable() 54
dom.convertTablesToLayers() 55
dom.convertTo30() 55
dom.convertWidthsToPercent() 145
dom.convertWidthsToPixels() 145
dom.decreaseColspan() 145
dom.decreaseRowspan() 146
dom.deleteKey() 102
dom.deleteSelection() 77
dom.deleteTableColumn() 146
dom.deleteTableRow() 146
dom.detachFromLibrary() 108
dom.detachFromTemplate() 108
dom.doDeferredTableUpdate() 146
dom.editAttribute() 78
dom.endOfDocument() 102
dom.endOfLine() 102
dom.exitBlock() 78
dom.getAttachedTemplate() 109
dom.getBehavior() 42
dom.getEditableRegionList() 109, 110
dom.getEditNoFramesContent() 155
dom.getFocus() 169
dom.getFontMarkup() 78
dom.getFrameNames() 76
dom.getIsLibraryDocument() 109
dom.getIsTemplateDocument() 109
dom.getLinkHref() 78
dom.getLinkTarget() 79
dom.getListTag() 79
dom.getPreventLayerOverlaps() 155
dom.getRulerOrigin() 165
dom.getRulerUnits() 165
dom.getSelectedEditableRegion() 110
dom.getSelectedNode() 122
dom.getSelection() 122
dom.getShowFrameBorders() 155
dom.getShowGrid() 155
dom.getShowHeadView() 155
dom.getShowImageMaps() 156
dom.getShowLayerBorders() 156
dom.getShowRulers() 156
dom.getShowTableBorders() 156
000ExtendingDWU.book Page 359 Thursday, June 8, 2000 3:38 PM
dom.getShowTracingImage() 157
dom.getSnapToGrid() 157
dom.getTableExtent() 146
dom.getTextAlignment() 79
dom.getTextFormat() 80
dom.getTracingImageOpacity() 166
dom.getWindowTitle() 169
dom.hasCharacterMarkup() 80
dom.hasTracingImage() 184
dom.increaseColspan() 147
dom.increaseRowspan() 147
dom.indent() 80
dom.insertHTML() 80
dom.insertLibraryItem() 110
dom.insertObject() 81
dom.insertTableColumns() 147
dom.insertTableRows() 147
dom.insertText() 81
dom.loadTracingImage() 166
dom.makeSizesEqual() 106
dom.markSelectionAsEditable() 110
dom.mergeTableCells() 148
dom.moveSelectionBy() 106
dom.newBlock() 82
dom.newEditableRegion() 110
dom.nextParagraph() 103
dom.nextWord() 103
dom.nodeToOffsets() 123
dom.offsetsToNode() 123
dom.outdent() 82
dom.pageDown() 103
dom.pageUp() 104
dom.playAllPlugins() 166
dom.playPlugin() 166
dom.previousParagraph() 104
dom.previousWord() 104
dom.reapplyBehaviors() 43
dom.redo() 91
dom.removeAllTableHeights() 148
dom.removeAllTableWidths() 148
dom.removeBehavior() 43
dom.removeCharacterMarkup() 83
dom.removeCSSStyle() 56
dom.removeEditableRegion() 111
dom.removeFontMarkup() 83
dom.removeLink() 83
dom.resizeSelection() 84
dom.resizeSelectionBy() 106
dom.runTranslator() 163
dom.selectAll() 124
dom.selectChild() 120
dom.selectParent() 120
dom.selectTable() 124
dom.serverModel.getServerLanguage() 127
dom.serverModel.getServerName() 127
dom.serverModel.getServerVersion() 128
dom.setAttributeWithErrorChecking() 84
dom.setEditNoFramesContent() 157
dom.setLayerTag() 107
dom.setLinkHref() 84
dom.setLinkTarget() 84
dom.setListBoxKind() 85
dom.setListTag() 85
dom.setPreventLayerOverlaps() 158
dom.setRulerOrigin() 166
dom.setRulerUnits() 167
dom.setSelectedNode() 124
dom.setSelection() 125
dom.setShowFrameBorders() 158
dom.setShowGrid() 158
dom.setShowHeadView() 158
dom.setShowImageMaps() 159
dom.setShowLayerBorders() 159
dom.setShowRulers() 159
dom.setShowTableBorders() 159
dom.setShowTracingImage() 159
dom.setSnapToGrid() 160
dom.setTableCellTag() 148
dom.setTableColumns() 149
dom.setTableRows() 149
dom.setTextAlignment() 86
dom.setTextFieldKind() 86
dom.setTracingImageOpacity() 167
dom.setTracingImagePosition() 167
dom.showFontColorDialog() 86
dom.showInsertTableRowsOrColumnsDialog() 149
dom.showListPropertiesDialog() 85
dom.showPagePropertiesDialog() 90
dom.snapTracingImageToSelection() 168
dom.splitFrame() 76
dom.splitTableCell() 150
dom.startOfDocument() 105
dom.startOfLine() 105
dom.stopAllPlugins() 168
Index 359
000ExtendingDWU.book Page 360 Thursday, June 8, 2000 3:38 PM
dom.stopPlugin() 168
dom.stripTag() 121
dom.undo() 92
dom.updateCurrentPage() 111
dom.wrapTag() 121
Données dynamiques, Boîte de dialogue 319
dreamweaver, objet
méthodes 40
propriétés 29
dreamweaver.arrangeFloatingPalettes() 168
dreamweaver.behaviorInspector, objet 42
dreamweaver.behaviorInspector.getBehaviorAt() 46
dreamweaver.behaviorInspector.getBehaviorCount() 47
dreamweaver.behaviorInspector.getSelectedBehavior()
47
dreamweaver.behaviorInspector.moveBehaviorDown()
48
dreamweaver.behaviorInspector.moveBehaviorUp() 48
dreamweaver.behaviorInspector.setSelectedBehavior()
49
dreamweaver.browseDocument() 60
dreamweaver.browseForFileURL() 64
dreamweaver.browseForFolderURL() 64
dreamweaver.canClipCopy() 184
dreamweaver.canClipCut() 184
dreamweaver.canClipPaste() 185
dreamweaver.canExportCSS() 185
dreamweaver.canFindNext() 185
dreamweaver.canOpenInFrame() 186
dreamweaver.canPlayRecordedCommand() 186
dreamweaver.canRedo() 186
dreamweaver.canRevertDocument() 186
dreamweaver.canSaveAll() 187
dreamweaver.canSaveDocument() 187
dreamweaver.canSaveDocumentAsTemplate() 187
dreamweaver.canSaveFrameset() 187
dreamweaver.canSaveFramesetAs() 188
dreamweaver.canSelectAll() 188
dreamweaver.canShowFindDialog() 188
dreamweaver.canUndo() 188
dreamweaver.clipCopy() 52
dreamweaver.clipCut() 53
dreamweaver.clipPaste() 53
dreamweaver.closeDocument() 65
dreamweaver.createDocument() 65
dreamweaver.cssStylePalette, objet 55, 108
dreamweaver.cssStylePalette.deleteSelectedStyle() 56
360
Index
dreamweaver.cssStylePalette.duplicateSelectedStyle() 57
dreamweaver.cssStylePalette.editSelectedStyle() 57
dreamweaver.cssStylePalette.editStyleSheet() 57
dreamweaver.cssStylePalette.getSelectedStyle() 57
dreamweaver.cssStylePalette.getSelectedTarget() 58
dreamweaver.cssStylePalette.getStyles() 59
dreamweaver.cssStylePalette.newStyle() 59
dreamweaver.deleteSelection() 86
dreamweaver.editCommandList() 53
dreamweaver.editFontList() 87
dreamweaver.editLockedRegions() 164
dreamweaver.exportCSS() 65
dreamweaver.exportEditableRegionsAsXML() 65
dreamweaver.findNext() 71
dreamweaver.getActiveWindow() 170
dreamweaver.getBehaviorElement() 43
dreamweaver.getBehaviorEvent() 173
dreamweaver.getBehaviorTag() 45
dreamweaver.getBrowserList() 61
dreamweaver.getClipboardText() 53
dreamweaver.getConfigurationPath() 118
dreamweaver.getDocumentDOM() 41
dreamweaver.getDocumentList() 170
dreamweaver.getDocumentPath() 118
dreamweaver.getElementRef() 90
dreamweaver.getExtensionEditorList() 61
dreamweaver.getFloaterVisibility() 171
dreamweaver.getFocus() 170
dreamweaver.getFontList() 87
dreamweaver.getHideAllFloaters() 160
dreamweaver.getKeyState() 87
dreamweaver.getLiveDataInitTags() 114
dreamweaver.getLiveDataMode() 114
dreamweaver.getMenuNeedsUpdating() 117
dreamweaver.getObjectRefs() 173
dreamweaver.getObjectTags() 174
dreamweaver.getPrimaryBrowser() 61
dreamweaver.getPrimaryExtensionEditor() 62
dreamweaver.getRecentFileList() 66
dreamweaver.getRedoText() 92
dreamweaver.getSecondaryBrowser() 62
dreamweaver.getShowDialogsOnInsert() 88
dreamweaver.getShowInvisibleElements() 160
dreamweaver.getShowStatusBar() 160
dreamweaver.getSiteRoot() 119
dreamweaver.getTokens() 141
dreamweaver.getTranslatorList() 164
000ExtendingDWU.book Page 361 Thursday, June 8, 2000 3:38 PM
dreamweaver.getUndoText() 92
dreamweaver.historyPalette, objet 91
dreamweaver.historyPalette.clearSteps() 94
dreamweaver.historyPalette.copySteps() 94
dreamweaver.historyPalette.getSelectedSteps() 94
dreamweaver.historyPalette.getStepCount() 95
dreamweaver.historyPalette.getStepsAsJavaScript() 95
dreamweaver.historyPalette.getUndoState() 96
dreamweaver.historyPalette.replaySteps() 96
dreamweaver.historyPalette.saveAsCommand() 97
dreamweaver.historyPalette.setSelectedSteps() 97
dreamweaver.historyPalette.setUndoState() 97
dreamweaver.htmlStylePalette,objet 98
dreamweaver.htmlStylePalette.canEditSelection() 189
dreamweaver.htmlStylePalette.deleteSelectedStyle() 98
dreamweaver.htmlStylePalette.duplicateSelectedStyle()
98
dreamweaver.htmlStylePalette.editSelectedStyle() 98
dreamweaver.htmlStylePalette.getSelectedStyle() 99
dreamweaver.htmlStylePalette.getStyles() 99
dreamweaver.htmlStylePalette.newStyle() 99
dreamweaver.htmlStylePalette.setSelectedStyle() 99
dreamweaver.importXMLIntoTemplate() 66
dreamweaver.isRecording() 188
dreamweaver.latin1ToNative() 142
dreamweaver.libraryPalette, objet 108
dreamweaver.libraryPalette.deleteSelectedItem() 112
dreamweaver.libraryPalette.getSelectedItem() 112
dreamweaver.libraryPalette.newFromDocument() 112
dreamweaver.libraryPalette.recreateFromDocument()
112
dreamweaver.libraryPalette.renameSelectedItem() 113
dreamweaver.liveDataTranslate() 115
dreamweaver.nativeToLatin1() 142
dreamweaver.newFromTemplate() 66
dreamweaver.nodeToOffsets() 176
dreamweaver.notifyMenuUpdated() 117
dreamweaver.offsetsToNode() 176
dreamweaver.openDocument() 66
dreamweaver.openDocumentFromSite() 68
dreamweaver.openInFrame() 68
dreamweaver.openWithApp() 62
dreamweaver.openWithBrowseDialog() 62
dreamweaver.openWithExternalTextEditor() 63
dreamweaver.openWithImageEditor() 63
dreamweaver.playRecordedCommand() 93
dreamweaver.popupAction() 45
dreamweaver.popupCommand() 176
dreamweaver.popupServerBehavior() 126
dreamweaver.quitApplication() 88
dreamweaver.redo() 93
dreamweaver.relativeToAbsoluteURL() 119
dreamweaver.releaseDocument() 68
dreamweaver.reloadMenus() 118
dreamweaver.replace() 72
dreamweaver.replaceAll() 72
dreamweaver.revertDocument() 69
dreamweaver.runCommand() 54
dreamweaver.saveAll() 69
dreamweaver.saveDocument() 69
dreamweaver.saveDocumentAs() 70
dreamweaver.saveDocumentAsTemplate() 70
dreamweaver.saveFrameset() 70
dreamweaver.saveFramesetAs() 71
dreamweaver.selectAll() 125
dreamweaver.serverBehaviorInspector.findAllServer
Behaviors() 126
dreamweaver.serverBehaviorInspector.getServer
Behaviors() 126
dreamweaver.setActiveWindow() 171
dreamweaver.setFloaterVisibility() 171
dreamweaver.setHideAllFloaters() 161
dreamweaver.setLiveDataError() 115
dreamweaver.setLiveDataMode() 116
dreamweaver.setSelection() 177
dreamweaver.setShowInvisibleElements() 161
dreamweaver.setShowStatusBar() 161
dreamweaver.setUpComplexFind() 72
dreamweaver.setUpComplexFindReplace() 73
dreamweaver.setUpFind() 74
dreamweaver.setUpFindReplace() 74
dreamweaver.showAboutBox() 88
dreamweaver.showDynamicData() 88
dreamweaver.showFindDialog() 75
dreamweaver.showFindReplaceDialog() 76
dreamweaver.showGridSettingsDialog() 169
dreamweaver.showLiveDataDialog() 116
dreamweaver.showPreferencesDialog() 89
dreamweaver.showProperties() 172
dreamweaver.showQuickTagEditor() 121
dreamweaver.startRecording() 93
dreamweaver.stopRecording() 93
dreamweaver.templatePalette.deleteSelectedTemplate()
113
Index
361
000ExtendingDWU.book Page 362 Thursday, June 8, 2000 3:38 PM
dreamweaver.templatePalette.getSelectedTemplate()
113
dreamweaver.templatePalette.newBlankTemplate() 113
dreamweaver.templatePalette.renameSelectedTemplate()
114
dreamweaver.timelineInspector, objet 150
dreamweaver.timelineInspector.addBehavior() 150
dreamweaver.timelineInspector.addFrame() 150
dreamweaver.timelineInspector.addKeyframe() 151
dreamweaver.timelineInspector.addObject() 151
dreamweaver.timelineInspector.addTimeline() 151
dreamweaver.timelineInspector.canAddFrame() 189
dreamweaver.timelineInspector.canAddKeyFrame()
189
dreamweaver.timelineInspector.canChangeObject()
189
dreamweaver.timelineInspector.canRemoveFrame()
190
dreamweaver.timelineInspector.canRemoveKeyFrame()
190
dreamweaver.timelineInspector.canRemoveObject()
190
dreamweaver.timelineInspector.changeObject() 151
dreamweaver.timelineInspector.getAutoplay() 152
dreamweaver.timelineInspector.getCurrentFrame() 152
dreamweaver.timelineInspector.getLoop() 152
dreamweaver.timelineInspector.recordPathOfLayer() 152
dreamweaver.timelineInspector.removeBehavior() 152
dreamweaver.timelineInspector.removeFrame() 153
dreamweaver.timelineInspector.removeKeyframe() 153
dreamweaver.timelineInspector.removeObject() 153
dreamweaver.timelineInspector.removeTimeline() 153
dreamweaver.timelineInspector.renameTimeline() 153
dreamweaver.timelineInspector.setAutoplay() 154
dreamweaver.timelineInspector.setCurrentFrame() 154
dreamweaver.timelineInspector.setLoop() 154
dreamweaver.toggleFloater() 172
dreamweaver.undo() 94
dreamweaver.updatePages() 111
dreamweaver.useTranslatedSource() 164
duplicateSelectedStyle()
dreamweaver.cssStylePalette.duplicateSelected
Style() 57
dreamweaver.htmlStylePalette.duplicateSelected
Style() 98
dw, objet 40
dw.arrangeFloatingPalettes() 168
362
Index
dw.behaviorInspector.getBehaviorAt() 46
dw.behaviorInspector.getBehaviorCount() 47
dw.behaviorInspector.getSelectedBehavior() 47
dw.behaviorInspector.moveBehaviorDown() 48
dw.behaviorInspector.moveBehaviorUp() 48
dw.behaviorInspector.setSelectedBehavior() 49
dw.browseDocument() 60
dw.browseForFileURL() 64
dw.browseForFolderURL() 64
dw.canClipCopy() 184
dw.canClipCut() 184
dw.canClipPaste() 185
dw.canExportCSS() 185
dw.canFindNext() 185
dw.canOpenInFrame() 186
dw.canPlayRecordedCommand() 186
dw.canRedo() 186
dw.canRevertDocument() 186
dw.canSaveAll() 187
dw.canSaveDocument() 187
dw.canSaveDocumentAsTemplate() 187
dw.canSaveFrameset() 187
dw.canSaveFramesetAs() 188
dw.canSelectAll() 188
dw.canShowFindDialog() 188
dw.canUndo() 188
dw.clipCopy() 52
dw.clipCut() 53
dw.clipPaste() 53
dw.closeDocument() 65
dw.createDocument() 65
dw.cssStylePalette.deleteSelectedStyle() 56
dw.cssStylePalette.duplicateSelectedStyle() 57
dw.cssStylePalette.editSelectedStyle() 57
dw.cssStylePalette.editStyleSheet() 57
dw.cssStylePalette.getSelectedStyle() 57
dw.cssStylePalette.getSelectedTarget() 58
dw.cssStylePalette.getStyles() 59
dw.cssStylePalette.newStyle() 59
dw.deleteSelection() 86
dw.editCommandList() 53
dw.editFontList() 87
dw.editLockedRegions() 164
dw.exportCSS() 65
dw.exportEditableRegionsAsXML() 65
DWfile, DLL
API 198
000ExtendingDWU.book Page 363 Thursday, June 8, 2000 3:38 PM
vérification 197
DWfile.copy() 198
DWfile.createFolder() 198
DWfile.exists() 199
DWfile.getAttributes() 199
DWfile.getModificationDate() 200
DWfile.listFolder() 200
DWfile.read() 201
DWfile.remove() 201
DWfile.write() 202
dw.findNext() 71
dw.getActiveWindow() 170
dw.getBehaviorElement() 43
dw.getBehaviorTag() 45
dw.getBrowserList() 61
dw.getClipboardText() 53
dw.getConfigurationPath() 118
dw.getDocumentDOM() 41
dw.getDocumentList() 170
dw.getDocumentPath() 118
dw.getElementRef() 90
dw.getExtensionEditorList() 61
dw.getFloaterVisibility() 171
dw.getFocus() 170
dw.getFontList() 87
dw.getHideAllFloaters() 160
dw.getKeyState() 87
dw.getLiveDataInitTags() 114
dw.getLiveDataMode() 114
dw.getMenuNeedsUpdating() 117
dw.getPrimaryBrowser() 61
dw.getPrimaryExtensionEditor() 62
dw.getRecentFileList() 66
dw.getRedoText() 92
dw.getSecondaryBrowser() 62
dw.getShowDialogsOnInsert() 88
dw.getShowInvisibleElements() 160
dw.getShowStatusBar() 160
dw.getSiteRoot() 119
dw.getTokens() 141
dw.getTranslatorList() 164
dw.getUndoText() 92
dw.historyPalette.clearSteps() 94
dw.historyPalette.copySteps() 94
dw.historyPalette.getSelectedSteps() 94
dw.historyPalette.getStepCount() 95
dw.historyPalette.getStepsAsJavaScript() 95
dw.historyPalette.getUndoState() 96
dw.historyPalette.replaySteps() 96
dw.historyPalette.saveAsCommand() 97
dw.historyPalette.setSelectedSteps() 97
dw.historyPalette.setUndoState() 97
dw.htmlStylePalette.canEditSelection() 189
dw.htmlStylePalette.deleteSelectedStyle() 98
dw.htmlStylePalette.duplicateSelectedStyle() 98
dw.htmlStylePalette.editSelectedStyle() 98
dw.htmlStylePalette.getSelectedStyle() 99
dw.htmlStylePalette.getStyles() 99
dw.htmlStylePalette.newStyle() 99
dw.htmlStylePalette.setSelectedStyle() 99
dw.importXMLIntoTemplate() 66
dw.isRecording() 188
dw.latin1ToNative() 142
dw.libraryPalette.deleteSelectedItem() 112
dw.libraryPalette.getSelectedItem() 112
dw.libraryPalette.newFromDocument() 112
dw.libraryPalette.recreateFromDocument() 112
dw.libraryPalette.renameSelectedItem() 113
dw.liveDataTranslate() 115
dw.nativeToLatin1() 142
dw.newFromTemplate() 66
dw.notifyMenuUpdated() 117
dw.openDocument() 66
dw.openDocumentFromSite() 68
dw.openInFrame() 68
dw.openWithApp() 62
dw.openWithBrowseDialog() 62
dw.openWithExternalTextEditor() 63
dw.openWithImageEditor() 63
dw.playRecordedCommand() 93
dw.popupAction() 45
dw.popupServerBehavior() 126
dw.quitApplication() 88
dw.redo() 93
dw.relativeToAbsoluteURL() 119
dw.releaseDocument() 68
dw.reloadMenus() 118
dw.replace() 72
dw.replaceAll() 72
dw.revertDocument() 69
dw.runCommand() 54
dw.saveAll() 69
dw.saveDocument() 69
dw.saveDocumentAs() 70
Index 363
000ExtendingDWU.book Page 364 Thursday, June 8, 2000 3:38 PM
dw.saveDocumentAsTemplate() 70
dw.saveFrameset() 70
dw.saveFramesetAs() 71
dw.selectAll() 125
dw.serverBehaviorInspector.findAllServerBehaviors()
126
dw.serverBehaviorInspector.getServerBehaviors() 126
dw.setActiveWindow() 171
dw.setFloaterVisibility() 171
dw.setHideAllFloaters() 161
dw.setLiveDataError() 115
dw.setLiveDataMode() 116
dw.setShowInvisibleElements() 161
dw.setShowStatusBar() 161
dw.setUpComplexFind() 72
dw.setUpComplexFindReplace() 73
dw.setUpFind() 74
dw.setUpFindReplace() 74
dw.showAboutBox() 88
dw.showDynamicData() 88
dw.showFindDialog() 75
dw.showFindReplaceDialog() 76
dw.showGridSettingsDialog() 169
dw.showLiveDataDialog() 116
dw.showPreferencesDialog() 89
dw.showProperties() 172
dw.showQuickTagEditor() 121
dw.startRecording() 93
dw.stopRecording() 93
dw.templatePalette.deleteSelectedTemplate() 113
dw.templatePalette.getSelectedTemplate() 113
dw.templatePalette.newBlankTemplate() 113
dw.templatePalette.renameSelectedTemplate() 114
dw.timelineInspector.addBehavior() 150
dw.timelineInspector.addFrame() 150
dw.timelineInspector.addKeyframe() 151
dw.timelineInspector.addObject() 151
dw.timelineInspector.addTimeline() 151
dw.timelineInspector.canAddFrame() 189
dw.timelineInspector.canAddKeyFrame() 189
dw.timelineInspector.canChangeObject() 189
dw.timelineInspector.canRemoveFrame() 190
dw.timelineInspector.canRemoveKeyFrame() 190
dw.timelineInspector.canRemoveObject() 190
dw.timelineInspector.changeObject() 151
dw.timelineInspector.getAutoplay() 152
dw.timelineInspector.getCurrentFrame() 152
364
Index
dw.timelineInspector.getLoop() 152
dw.timelineInspector.recordPathOfLayer() 152
dw.timelineInspector.removeBehavior() 152
dw.timelineInspector.removeFrame() 153
dw.timelineInspector.removeKeyframe() 153
dw.timelineInspector.removeObject() 153
dw.timelineInspector.removeTimeline() 153
dw.timelineInspector.renameTimeline() 153
dw.timelineInspector.setAutoplay() 154
dw.timelineInspector.setCurrentFrame() 154
dw.timelineInspector.setLoop() 154
dw.toggleFloater() 172
dw.undo() 94
dw.updatePages() 111
dw.useTranslatedSource() 164
E
editAttribute() 78
editCommandList() 53
editFontList() 87
editLockedRegions() 164
editSelectedStyle()
dreamweaver.cssStylePalette.editSelectedStyle() 57
dreamweaver.htmlStylePalette.editSelectedStyle()
98
editStyleSheet() 57
endOfDocument() 102
endOfLine() 102
entrée/sortie de fichiers 198
escape() 25
événements
dans les fichiers d'extension 25
execJsInFireworks() 214
exists() 199
exitBlock() 78
exportCSS() 65
exportEditableRegionsAsXML() 65
extensions de la balise select 34, 35
F
fichiers JavaScript externes 36
fichiers sur disque
copie 198
création (fichiers HTML) 65
création (fichiers non HTML) 202
écriture dans 202
000ExtendingDWU.book Page 365 Thursday, June 8, 2000 3:38 PM
lecture 201
suppression 201
file, objet (champ) 25
FilePathToLocalURL() 212
filePathToLocalURL() 207
findAllServerBehaviors() 126
findDynamicSources() 323
findLinkSource() 131
findNext() 71
findServerBehaviors() 341
Fireworks
exemple d'intégration 217
focus() 25
fonctions C
appel à partir de JavaScript 246
dans mm_jsapi.h 239
fonctions d'aide, dans les comportements 285
fonctions relatives aux cartes graphiques 105
fonctions relatives aux zones réactives 105
form, objet 25
formatDynamicDataRef() 330
function, objet 25
FWLaunch.bringDWToFront() 213
FWLaunch.bringFWToFront() 213
FWLaunch.execJsInFireworks() 214
FWLaunch.getJsResponse() 214
FWLaunch.mayLaunchFireworks() 215
FWLaunch.optimizeInFireworks() 215
FWLaunch.validateFireworks() 216
G
generateDynamicSourceBindings() 323
gestion des versions 29
gestionnaires d'événements
dans les boîtes de dialogue de comportement 284
dans les fichiers d'extension 36
renvoi d'une valeur à partir de 285
get()
MMNotes.get() 205
site.get() 132
getActiveWindow() 170
getAttachedTemplate() 109
getAttribute() 31
getAttributes() 199
getAutoplay() 152
getBehavior() 42
getBehaviorAt() 46
getBehaviorCount() 47
getBehaviorElement() 43
getBehaviorEvent() 173
getBehaviorTag() 45
getBrowserList() 61
getCheckOutUser() 132
getCheckOutUserForFile() 132
getClipboardText() 53
getColumnAndTypeList() 227
getColumnList() 227
getColumnsOfTable() 227
getConfigurationPath() 118
getConnectionList() 228
getConnectionName() 228
getConnectionState() 133
getConnectionString() 229
getCurrentFrame() 152
getCurrentSite() 133
getDocumentDOM()
dreamweaver.getDocumentDOM() 41
importance 41
getDocumentList() 170
getDocumentPath() 118
getDriverName() 229
getDynamicContent() 262
getEditableRegionList() 109
getEditableRetionList() 110
getEditNoFramesContent() 155
getElementRef() 90
getElementsByTagName()
pour les objets document 30
pour les objets tag 31
getExtensionEditorList() 61
getFile() 220
getFileCallback() 222
getFileExtensions() 317
getFloaterVisibility() 171
getFocus()
dom.getFocus() 169
dreamweaver.getFocus() 170
site.getFocus() 133
getFontList() 87
getFontMarkup() 78
getFrameNames() 76
getHideAllFloaters() 160
getIsLibraryDocument() 109
getIsTemplateDocument() 109
Index 365
000ExtendingDWU.book Page 366 Thursday, June 8, 2000 3:38 PM
getJsResponse() 214
getKeyCount() 205
getKeys() 206
getKeyState() 87
getLinkHref() 78
getLinkTarget() 79
getLinkVisibility() 134
getListTag() 79
getLiveDataInitTags() 114
getLiveDataMode() 114
getLoop() 152
getMenuNeedsUpdating() 117
getModificationDate() 200
GetNote() 209
GetNoteLength() 209
GetNotesKeyCount() 210
GetNotesKeys() 210
getObjectRefs() 173
getObjectTags() 174
getPassword() 230
getPreventLayerOverlaps() 155
getPrimaryBrowser() 61
getPrimaryExtensionEditor() 62
getRecentFileList() 66
getRedoText() 92
getRulerOrigin() 165
getRulerUnits() 165
getRuntimeConnectionType() 230
getSecondaryBrowser() 62
getSelectedBehavior() 47
getSelectedEditableRegion() 110
getSelectedItem() 112
getSelectedNode() 122
getSelectedStyle()
dreamweaver.cssStylePalette.getSelectedStyle() 57
dreamweaver.htmlStylePalette.getSelectedStyle()
99
getSelectedTarget() 58
getSelectedTemplate() 113
getSelection()
dom.getSelection() 122
dreamweaver.getSelection() 175
site.getSelection() 134
getServerBehaviors() 126
getServerLanguage() 127
getServerLanguages() 318
getServerName() 127
366
Index
getServerVersion() 128
getShowDependents() 161
getShowDialogsOnInsert() 88
getShowFrameBorders() 155
getShowGrid() 155
getShowHeadView() 155
getShowHiddenFiles() 161
getShowImageMaps() 156
getShowInvisibleElements() 160
getShowLayerBorders() 156
getShowPageTitles() 162
getShowRulers() 156
getShowStatusBar() 160
getShowTableBorders() 156
getShowToolTips() 162
getShowTracingImage() 157
getSiteRoot() 119
GetSiteRootForFile() 211
getSiteRootForFile() 206
getSites() 134
getSnapToGrid() 157
getSPColumnList() 230
getSPColumnListNamedParams() 231
getSPParamsAsString() 232
getStepCount() 95
getStepsAsJavaScript() 95
getStyles()
dreamweaver.cssStylePalette.getStyles() 59
dreamweaver.htmlStylePalette.getStyles() 99
getTableExtent() 146
getTables() 233
getText() 223
getTextAlignment() 79
getTextCallback() 223
getTextFormat() 80
getTokens() 141
getTracingImageOpacity() 166
getTranslatedAttribute() 31
getTranslatorInfo() 299
getTranslatorList() 164
getUndoState() 96
getUndoText() 92
getUserName() 233
getVersionArray() 318
GetVersionName() 211
getVersionName() 206
GetVersionNum() 211
000ExtendingDWU.book Page 367 Thursday, June 8, 2000 3:38 PM
getVersionNum() 206
getWindowTitle() 169
H
hasCharacterMarkup() 80
hasChildNodes()
pour les objets comment 33
pour les objets document 30
pour les objets tag 31
pour les objets text 33
hasTracingImage() 184
hasTranslatedAttributes() 31
hidden, objet (champ) 25
I
identifyBehaviorArguments() 289
image, objet 25
image, objet (champ) 25
importXMLIntoTemplate() 66
incomplete property 334
increaseColspan() 147
increaseRowspan() 147
indent() 80
InfoPrefs 211
informations sur le langage 29
initialPosition() 279
initialTabs() 279
innerHTML, propriété 31
insertHTML() 80
insertLibraryItem() 110
insertObject() 81
insertTableColumns() 147
insertTableRows() 147
insertText() 81
inspectBehavior() 291
inspectDynamicDataRef() 324
inspecteur de liaisons de données 319
inspecteurs de propriétés
API 271
attributs traduits 306
exemple de code 273
expérience de l'utilisateur 270
fonctions obligatoires 271
icône éclair 306
mot-clé *LOCKED* 313
pour le contenu verrouillé 313
inspectFormatDefinition() 331
inspectSelection() 272
inspectServerBehavior() 341
invertSelection() 134
isCommandChecked() 262
isRecording() 188
item() 25
J
JavaScript
ouvrages de référence 24
syntaxe 24
JavaScript, ouvrages de référence 24
JS_BooleanToValue() 243
JS_DefineFunction() 240
JS_DoubleToValue() 243
JS_ExecuteScript() 245
JS_GetArrayLength() 244
JS_GetElement() 244
JS_IntegerToValue() 243
JS_NewArrayObject() 244
JS_ObjectToValue() 243
JS_ObjectType() 244
JS_ReportError() 246
JS_SetElement() 245
JS_StringToValue() 242
JS_ValueToBoolean() 242
JS_ValueToDouble() 241
JS_ValueToInteger() 241
JS_ValueToObject() 242
JS_ValueToString() 241
JSBool 240
JSContext 239
JSNative 240
JSObject 239
jsval 240
L
latin1ToNative() 142
layer, objet 25
listFolder() 200
liveDataTranslate() 115
liveDataTranslateMarkup function() 301
loadTracingImage() 166
LocalURLToFilePath() 212
localURLToFilePath() 207
locateInSite() 131
Index
367
000ExtendingDWU.book Page 368 Thursday, June 8, 2000 3:38 PM
M
makeEditable() 135
makeNewDreamweaverFile() 135
makeNewFolder() 135
makeSizesEqual() 106
markSelectionAsEditable() 110
math, objet 25
mayLaunchFireworks() 215
menus dynamiques
exemple de code 266
expérience de l'utilisateur 259
mergeTableCells() 148
mm_jsapi.h
exemple de fichier 246
insertion 239
MM_returnValue 285
mmdatabasetree 34
MMDB.getColumnAndTypeList() 227
MMDB.getColumnList() 227
MMDB.getColumnsOfTable() 227
MMDB.getConnectionList() 228
MMDB.getConnectionName() 228
MMDB.getConnectionString() 229
MMDB.getDriverName() 229
MMDB.getPassword() 230
MMDB.getRuntimeConnectionType() 230
MMDB.getSPColumnList() 230
MMDB.getSPColumnListNamedParams() 231
MMDB.getSPParamsAsString() 232
MMDB.getTables() 233
MMDB.getUserName() 233
MMDB.showConnectionMgrDialog() 233
MMDB.showResultset() 234
MMDB.showSPResultset() 234
MMDB.showSPResultsetNamedParams() 235
MMHttp.clearTemp() 220
MMHttp.getFile() 220
MMHttp.getFileCallback() 222
MMHttp.getText() 223
MMHttp.getTextCallback() 223
MMHttp.postText() 224
MMHttp.postTextCallback() 224
MMInfo.h 207
MMNotes, objet 204
MMNotes.close() 204
MMNotes.filePathToLocalURL() 207
MMNotes.get() 205
368
Index
MMNotes.getKeyCount() 205
MMNotes.getKeys() 206
MMNotes.getSiteRootForFile() 206
MMNotes.getVersionName() 206
MMNotes.getVersionNum() 206
MMNotes.localURLToFilePath() 207
MMNotes.open() 204
MMNotes.remove() 205
MMNotes.set() 205
mmparameterlist 35
modèle objet de document
dans Dreamweaver 25
Spécification DOM Niveau 1 25
Modifier la liste de formats, menu (+) 327
mot-clé *LOCKED* 313
mots de passe 230
moveBehaviorDown() 48
moveBehaviorUp() 48
moveSelectionBy() 106
N
nativeToLatin1() 142
navigator, objet 25
newBlankTemplate() 113
newBlock() 82
newEditableRegion() 110
newFromDocument() 112
newFromTemplate() 66
newHomePage() 135
newSite() 136
newStyle()
dreamweaver.cssStylePalette.newStyle() 59
dreamweaver.htmlStylePalette.newStyle() 99
nextParagraph() 103
nextWord() 103
Node.COMMENT_NODE 29
Node.DOCUMENT_NODE 29
Node.ELEMENT_NODE 29
nodelist, objet 25
Node.TEXT_NODE 29
nodeToOffsets()
dom.nodeToOffsets() 123
dreamweaver.nodeToOffsets() 176
nodeType, propriété
des objets tag 31
des objets text 33
objets comment 33
000ExtendingDWU.book Page 369 Thursday, June 8, 2000 3:38 PM
objets document 30
nœud d'éléments 31
nœud de document 30
nœud de texte 33
nœuds 29
noms d’utilisateur 233
_notes, dossier 203
notifyMenuUpdated() 117
number, objet 25
O
object, objet 25
objectTag() 251
objets
ajout à la palette d'objets 252
ajout au menu Insertion 252
API 250
expérience de l'utilisateur 249
offsetsToNode()
dom.offsetsToNode() 123
dreamweaver.offsetsToNode() 176
onBlur 25
onChange 25
onClick 25
onFocus 25
onLoad 25
onMouseDown 25
onMouseOut 25
onMouseOver 25
onMouseUp 25
onResize 25
open()
MMNotes.open() 204
site.open() 136
openDocument() 66
openDocumentFromSite() 68
openInFrame() 68
OpenNotesFile() 208
openWithApp() 62
openWithBrowseDialog() 62
openWithExternalTextEditor() 63
openWithImageEditor() 63
optimizeInFireworks() 215
option, objet 25
outdent() 82
outerHTML, propriété 31
P
pageDown() 103
pageUp() 104
palettes flottantes
API 277
exemple de code 281
expérience de l'utilisateur 275
problèmes de performances 280
parentNode, propriété
objets comment 33
objets document 30
objets tag 31
objets text 33
parentWindow, propriété 30
participants, propriété 334
password, objet (champ) 25
pasteServerBehavior() 342
pilotes 229
playAllPlugins() 166
playPlugin() 166
playRecordedCommand() 93
popupAction() 45
popupCommand() 176
popupServerBehavior() 126
postText() 224
postTextCallback() 224
previousParagraph() 104
previousWord() 104
procédures stockées 226
affichage des résultats 234, 235
extraction de colonnes 230
extraction de paramètres 232
put() 136
Q
quitApplication() 88
R
radio, objet 25
read() 201
reapplyBehaviors() 43
receiveArguments()
dans les commandes de menu 262
dans les commandes ordinaires 255
recordPathOfLayer() 152
recreateCache() 136
Index 369
000ExtendingDWU.book Page 370 Thursday, June 8, 2000 3:38 PM
recreateFromDocument() 112
redo()
dom.redo() 91
dreamweaver.redo() 93
refresh() 137
regexp, objet 25
relativeToAbsoluteURL() 119
releaseDocument() 68
reloadMenus() 118
remoteIsValid() 137
remove() 201, 205
removeAllTableHeights() 148
removeAllTableWidths() 148
removeAttribute() 31
removeBehavior()
dom.removeBehavior() 43
dreamweaver.timelineInspector.removeBehavior()
152
removeCharacterMarkup() 83
removeCSSStyle() 56
removeEditableRegion() 111
removeFontMarkup() 83
removeFrame() 153
removeKeyframe() 153
removeLink()
dom.removeLink() 83
site.removeLink() 137
RemoveNote() 209
removeObject() 153
removeTimeline() 153
renameSelectedItem() 113
renameSelectedTemplate() 114
renameSelection() 137
renameTimeline() 153
replace() 72
replaceAll() 72
replaySteps() 96
reset, objet 25
resizeSelection() 84
resizeSelectionBy() 106
resizeTo() 25
revertDocument() 69
runCommand() 54
runTranslator() 163
370
Index
S
saveAll() 69
saveAsCommand() 97
saveAsImage() 138
saveDocument() 69
saveDocumentAs() 70
saveDocumentAsTemplate() 70
saveFrameset() 70
saveFramesetAs() 71
select() 25
select, objet 25
selectAll()
dom.selectAll() 124
dreamweaver.selectAll() 125
site.selectAll() 138
selectChild() 120
selectedNode property 335
selectHomePage() 138
selectionChanged() 278
selectNewer() 139
selectParent() 120
selectTable() 124
set() 205
setActiveWindow() 171
setAsHomePage() 139
setAttribute() 31
setAttributeWithErrorChecking() 84
setAutoplay() 154
setConnectionState() 139
setCurrentFrame() 154
setCurrentSite() 139
setEditNoFramesContent() 157
setFloaterVisibility() 171
setFocus() 140
setHideAllFloaters() 161
setInterval() 25
setLayerTag() 107
setLayout() 140
setLinkHref() 84
setLinkTarget() 84
setLinkVisibility() 140
setListBoxKind() 85
setListTag() 85
setLiveDataError() 115
setLiveDataMode() 116
setLoop() 154
setMenuText() 263
000ExtendingDWU.book Page 371 Thursday, June 8, 2000 3:38 PM
SetNote() 208
setPreventLayerOverlaps() 158
setRulerOrigin() 166
setRulerUnits() 167
setSelectedBehavior() 49
setSelectedNode() 124
setSelection()
dom.setSelection() 125
dreamweaver.setSelection() 177
site.setSelection() 140
setShowDependents() 162
setShowFrameBorders() 158
setShowGrid() 158
setShowHeadView() 158
setShowHiddenFiles() 162
setShowImageMaps() 159
setShowInvisibleElements() 161
setShowLayerBorders() 159
setShowPageTitles() 163
setShowRulers() 159
setShowStatusBar() 161
setShowTableBorders() 159
setShowToolTips() 163
setShowTracingImage() 159
setSnapToGrid() 160
setTableCellTag() 148
setTableColumns() 149
setTableRows() 149
setTextAlignment() 86
setTextFieldKind() 86
setTimeout() 25
dans les palettes flottantes 280
utilisation avec FWLaunch 217
setTracingImageOpacity() 167
setTracingImagePosition() 167
setUndoState() 97
setUpComplexFind() 72
setUpComplexFindReplace() 73
setUpFind() 74
setUpFindReplace() 74
showAboutBox() 88
showConnectionMgrDialog() 233
showDynamicData() 88
showFindDialog() 75
showFindReplaceDialog() 76
showFontColorDialog() 86
showGridSettingsDialog() 169
showInsertTableRowsOrColumnsDialog() 149
showListPropertiesDialog() 85
showLiveDataDialog() 116
showPagePropertiesDialog() 90
showPreferencesDialog() 89
showProperties() 172
showQuickTagEditor() 121
showResultset() 234
showSPResultset() 234
showSPResultsetNamedParams() 235
Shutdown, dossier 37
site, objet
méthodes 40
propriétés 29
site.addLinkToExistingFile() 128
site.addLinkToNewFile() 128
site.canAddLinkToFile() 190
site.canChangeLink() 191
site.canCheckIn() 191
site.canCheckOut() 191
site.canConnect() 192
site.canFindLinkSource() 192
site.canGet() 192
site.canLocateInSite() 192
site.canMakeEditable() 193
site.canMakeNewFileOrFolder() 193
site.canOpen() 193
site.canPut() 193
site.canRecreateCache() 194
site.canRefresh() 194
site.canRemoveLink() 194
site.canSelectNewer() 195
site.canSetLayout() 194
site.canSynchronize() 195
site.canUndoCheckOut() 195
site.canViewAsRoot() 196
site.changeLink() 129
site.changeLinkSitewide() 129
site.checkIn() 129
site.checkLinks() 130
site.checkOut() 130
site.checkTargetBrowsers() 130
site.defineSites() 131
site.deleteSelection() 131
site.findLinkSource() 131
site.get() 132
site.getCheckOutUser() 132
Index
371
000ExtendingDWU.book Page 372 Thursday, June 8, 2000 3:38 PM
site.getCheckOutUserForFile() 132
site.getConnectionState() 133
site.getCurrentSite() 133
site.getFocus() 133
site.getLinkVisibility() 134
site.getSelection() 134
site.getShowDependents() 161
site.getShowHiddenFiles() 161
site.getShowPageTitles() 162
site.getShowToolTips() 162
site.getSites() 134
site.invertSelection() 134
site.locateInSite() 131
site.makeEditable() 135
site.makeNewDreamweaverFile() 135
site.makeNewFolder() 135
site.newHomePage() 135
site.newSite() 136
site.open() 136
site.put() 136
site.recreateCache() 136
site.refresh() 137
site.remoteIsValid() 137
site.removeLink() 137
site.renameSelection() 137
site.saveAsImage() 138
site.selectAll() 138
site.selectHomePage() 138
site.selectNewer() 139
site.setAsHomePage() 139
site.setConnectionState() 139
site.setCurrentSite() 139
site.setFocus() 140
site.setLayout() 140
site.setLinkVisibility() 140
site.setSelection() 140
site.setShowDependents() 162
site.setShowHiddenFiles() 162
site.setShowPageTitles() 163
site.setShowToolTips() 163
site.synchronize() 141
site.undoCheckOut() 141
site.viewAsRoot() 141
snapTracingImageToSelection() 168
splitFrame() 76
splitTableCell() 150
SQL, instructions
372
Index
affichage des résultats 234
extraction de colonnes 227
startOfDocument() 105
startOfLine() 105
startRecording() 93
Startup, dossier 37
statusCode, propriété 219
stopAllPlugins() 168
stopPlugin() 168
stopRecording() 93
string, objet 25
stripTag() 121
submit, objet 25
synchronize() 141
T
tables 233
extraction de colonnes 227
tag, objet 31
tagName, propriété 31
text, objet 33
text, objet (champ) 25
textarea, objet 25
Texte dynamique, Boîte de dialogue 319
title, propriété 335
toggleFloater() 172
traducteurs
attributs 302
bloc/balise 307
débogage 315
traducteurs d’attributs 302
création 302
débogage 315
exemple de code 303
traducteurs de bloc/balise 302
débogage 315
exemple de code 309
traducteurs de données
API 299
débogage 315
expérience de l’utilisateur 298
fonctions requises 299
pour les attributs 302
pour les balises ou les blocs de code 307
type 302
translateMarkup() 300
typeof, opérateur 197
000ExtendingDWU.book Page 373 Thursday, June 8, 2000 3:38 PM
U
undo()
dom.undo() 92
dreamweaver.undo() 94
undoCheckOut() 141
unescape() 25
updateCurrentPage() 111
updatePages() 111
URL JavaScript 36
URL, propriété 30
useTranslatedSource() 164
V
validateFireworks() 216
viewAsRoot() 141
W
W3C 25
window, objet 25
windowDimensions()
dans les actions de comportement 292
dans les commandes de menu 263
dans les commandes ordinaires 256
dans les fichiers d'objet 251
wrapTag() 121
write() 202
Index
373

Documents pareils