5.7.4.1 attributeAnchorClick
5.7.4.1.1 Déclenchement
L'utilisateur a cliqué sur une balise <a>
dans un attribut de type htmltext.
Si le lien est un lien interne de type événement, alors l'événement attributeAnchorClick n'est pas déclenché.
5.7.4.1.2 Éléments passés au callback
event
- objet événement standard de jQuery,
documentObject
- un objet document décrivant le document courant.
attributeObject
- un objet attribut décrivant l'attribut courant.
$el
- objet jQuery contenant le noeud DOM sur lequel l'attribut est rendu.
index
- Le numéro de ligne si l'attribut est dans un tableau,
-1
sinon. options
-
- Un objet contenant les caractéristiques du lien :
anchor
- L'element
<a>
,anchorsConfig
-
la configuration définie par
setAnchorsOptions
pour l'attribut en cours, composée de :target
- la
target
dans laquelle ouvrir ce lien, modal
- dans le cas ou
target
vaut_dialog
, indique si la fenêtre doit êre modale, windowWidth
- dans le cas ou
target
vaut_dialog
, indique la largeur de la fenêtre à ouvrir, windowHeight
- dans le cas ou
target
vaut_dialog
, indique la hauteur de la fenêtre à ouvrir.
Il est possible de modifier directement la configuration dans anchorsConfig
pour obtenir un comportement différent (dans ce cas, il ne faut pas annuler l'événement).
5.7.4.1.3 Annulable
Oui. dans ce cas, le lien n'est pas ouvert par dynacase.
5.7.4.1.4 Exemple
Cet exemple ouvre les fenêtres wikipedia dans une nouvelle fenêtre, et les autres dans des dialog :
window.dcp.document.documentController("addEventListener", "attributeAnchorClick", { "name": "attributeAnchorClick", "documentCheck": function(documentObject) { return documentObject.family.name === "ZOO_ESPECE"; }, "attributeCheck" : function(attribute, documentObject) { if (attributeObject.id === "es_decription") { return true; } else { return false; } } }, function attributeAnchorClick(event, documentObject, attributeObject, $el, options, index) { if(/wikipedia\./.test(options.anchor.hostname)) { options.anchorsConfig.target = '_blank'; } else { options.anchorsConfig.target = '_dialog'; } } );
Cet exemple empêche l'ouverture des liens qui ne sont pas en https :
window.dcp.document.documentController("addEventListener", "attributeAnchorClick", { "name": "attributeAnchorClick", "documentCheck": function(documentObject) { return documentObject.family.name === "ZOO_ESPECE"; }, "attributeCheck" : function(attribute, documentObject) { if (attributeObject.id === "es_decription") { return true; } else { return false; } } }, function attributeAnchorClick(event, documentObject, attributeObject, $el, options, index) { if(options.anchor.scheme !== 'https:') { event.preventDefault(); alert('seuls les liens https peuvent être ouverts !'); } } );