web-dev-qa-db-fra.com

comment appeler une fonction onclick dans la balise <a>?

je veux ouvrir une nouvelle fenêtre en un clic de 1

$leadID = "<a href='javascript:onclick=window.open(lead_data.php?leadid=1, myWin, scrollbars=yes, width=400, height=650);'>1</a>";

ce n'est pas me montrer une erreur. existe-t-il un autre moyen d'ouvrir une nouvelle fenêtre?.

voici le violon http://jsfiddle.net/ankurdhanuka/uwypv/

Merci d'avance.

20
Ankur Dhanuka

Essayez la fonction onclick séparément. Elle peut vous permettre d’exécuter votre fonction et d’ouvrir une nouvelle fenêtre. Pour ce faire, vous devez d’abord créer une fonction javascript dans cette zone, vous pouvez la définir et dans votre balise d’ancrage, il vous suffit d’appeler. votre fonction.

Exemple:

function newwin() {              
 myWindow=window.open('lead_data.php?leadid=1','myWin','width=400,height=650')
}

Voir comment l'appeler depuis votre balise d'ancrage

<a onclick='newwin()'>Anchor</a>

Mise à jour

Visitez ce jsbin

http://jsbin.com/icUTUjI/1/edit

Cela vous aidera peut-être beaucoup à comprendre votre problème.

22
Đēēpak

Amusement! Il y a quelques choses à dire ici:

  • $leadID Semble être une chaîne php. Assurez-vous qu'il soit imprimé au bon endroit. Sachez également que tous les risques liés à la transmission de vos propres chaînes sont liés, tels que les vulnérabilités script intersite et injection SQL . Il n’ya vraiment aucune excuse pour que le code de production faisant face à Internet ne fonctionne pas sur un cadre solide .
  • Les chaînes en Javascript (comme PHP et généralement HTML) doivent être entourées de caractères " Ou '. Puisque vous êtes déjà dans " Et ', Vous voudrez échapper comme vous le souhaitez. \' Pour échapper aux citations PHP ou &apos; Pour échapper aux citations HTML.
  • Les éléments <a /> sont couramment utilisés pour les liens "hyper" et presque toujours avec un attribut href pour indiquer leur destination, comme ceci: <a href="http://www.google.com">Google homepage</a>.
  • Vous essayez de doubler en regardant quand l'utilisateur clique. Pourquoi? Parce qu'un clic standard active le lien (ce qui oblige le navigateur à accéder à n'importe quelle URL, même si cela exécute Javascript), et "déclenche" l'événement onclick. Conseil: Ajoutez un return false; À un événement Javascript pour supprimer le comportement par défaut.
  • En Javascript, onclick ne veut rien dire en soi. C'est parce que onclick est une propriété , et non une variable . Il doit y avoir une référence à un objet , donc il sait de quel onclick nous parlons! Un de ces objets est window. Vous pouvez écrire <a href="javascript:window.onclick = location.reload;">Activate me to reload when anything is clicked</a>.
  • En HTML, onclick peut vouloir dire quelque chose en soi, à condition qu'il fasse partie d'une balise HTML: <a href="#" onclick="location.reload(); return false;">. Je parie que vous aviez cela en tête.
  • Grande différence entre ces deux types d'assignations =. Le code Javascript = Attend quelque chose qui n’a pas encore été exécuté. Vous pouvez envelopper les choses dans un bloc function pour signaler le code à exécuter ultérieurement, si vous voulez spécifier des arguments maintenant (comme je ne l’ai pas fait plus haut avec reload): <a href="javascript:window.onclick = function () { window.open( ... ) };"> ....
  • Saviez-vous que vous n'avez même pas besoin d'utiliser Javascript pour signaler au navigateur d'ouvrir un lien dans une nouvelle fenêtre? Il existe un attribut cible spécial pour cela: <a href="http://www.google.com" target="_blank">Google homepage</a>.

J'espère que ceux-ci sont utiles.

9
Will McChesney

Vous devriez lire sur l'attribut html onclick et la documentation window.open() . Ci-dessous est ce que vous voulez.

<a href='#' onclick='window.open("http://www.google.com", "myWin", "scrollbars=yes,width=400,height=650"); return false;'>1</a>

JSFiddle: http://jsfiddle.net/TBcVN/

2
Dan

Utilisez le onclick comme attribut de votre a, ne faisant pas partie du href

<a onclick='window.open("lead_data.php?leadid=1", myWin, scrollbars=yes, width=400, height=650);'>1</a>

Violon: http://jsfiddle.net/Wt5La/

2
tymeJV