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 !');
        }
    }
);
×