2009-11-12 7 views
1

Je voudrais cliquer sur un lien dans ma page en utilisant javascript. Je voudrais déclencher des gestionnaires d'événements sur le lien sans naviguer. Comment cela peut-il être fait?Comment cliquer sur un lien depuis javascript

Merci

+2

Que voulez-vous accomplir? Naviguer vers la page dans le 'href'? Lancez les gestionnaires d'événements sur le lien * sans * naviguer? –

Répondre

7
window.onload = function() { 
    var myLink = document.getElementById("YOUR_A_TAG_ID"); 
    fireClick(myLink); 
}; 

function fireClick(elem) { 
    if(typeof elem == "string") elem = document.getElementById(objID); 
    if(!elem) return; 

    if(document.dispatchEvent) { // W3C 
    var oEvent = document.createEvent("MouseEvents"); 
    oEvent.initMouseEvent("click", true, true,window, 1, 1, 1, 1, 1, false, false, false, false, 0, elem); 
    elem.dispatchEvent(oEvent); 
    } 
    else if(document.fireEvent) { // IE 
    elem.click(); 
    }  
} 
+0

FYI, * si * le but de l'OP est de naviguer vers la page spécifiée dans l'attribut 'href', ce code n'aura aucun effet dans Firefox (toutes les versions). –

+0

Merci, Crescent Fresh. Je ne peux pas tester sur FF dès maintenant. Est-ce que ça passe par le 'if (document.dispatchEvent)' du tout? –

+0

Ou est-ce que FireFox n'autorise simplement pas ce comportement sur les ancres HTML? Toute documentation? Je peux voir comment cela serait perçu comme un risque de semi-sécurité. –

3

Avec JQuery Ce serait comme ça.

$("#YOUR_A_TAG_ID").click(); 

Ceci déclenche uniquement la fonction affectée à l'événement click. Il ne naviguera pas jusqu'au chemin spécifié dans l'attribut href.

JQuery documentation for click

+1

FYI: Ceci active uniquement la fonction affectée à l'événement click. –

+0

Oui, selon que l'OP souhaite réellement accéder à la page spécifiée dans l'attribut 'href', cela ne fera que ce que Josh indique. –

0

Une autre possibilité est d'utiliser la fonction de déclenchement de JQuery.

<span onmouseover="$('#alink').trigger('click');">Hello World</span> 

<a href="http://someurl" id="alink">A Link</a> 
Questions connexes