ouvrez une fenêtre (page aspx) avec un clic + javascript
- Je besoin pour ouvrir une nouvelle fenêtre avec un seul clic
d'un asp.net bouton. Mon problème est qu'il prend toujours deux clics.. si j'écris la fenêtre ouverte
le code de chargement de la page, puis la fenêtre s'ouvre sur 1 clic..
des idées comment contourner ce...
Cliquez Sur Le Bouton Code :
btnClaim.Attributes.Add("Onclick","javascript:return OpenPopup()")
Fonction Javascript :
function OpenPopup()
{
window.open("newWindow.aspx?", "_blank", "height=500, width=575, left=150,
top=150, " +
"location=no, menubar=no, resizable=no, " +
"scrollbars=no, titlebar=no, toolbar=no", true);
}
- Hors-sujet parce que je ne pense pas que cela ait quelque chose à voir avec votre problème, mais:
onclick
n'est pas un attribut de lien hypertexte, vous n'avez pas besoin (ou envie) de l'javascript:
préfixe. Il ne devrait pas être de leur faire du mal (parce qu'il ressemble à un JavaScript étiquette, n'est donc pas une erreur de syntaxe), mais c'est inutile, au mieux. (Si vous utilisezhref
, ce serait une autre histoire.) - Aussi hors-sujet: vous voulez Vous débarrasser des espaces après les virgules dans votre
window.open
appel. (par exemple,...width=575,left=150...
pas...width=575, left=150...
L'originalwindow.open
fait explicitement interdite (et ont tendance à rechigner sur eux), et je ne parierais que certains Samu n'est pas toujours le faire. - (Dans le cas où vous poseriez la question, non, je n'ai aucune idée de pourquoi ça prendrait deux clics. Il ne devrait pas, et il ne serait pas si vous avez été faire du pur HTML+JavaScript.)
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est que vous ajoutez du code pour gérer un clic dans le gestionnaire d'événements click. Cela signifie que lorsque vous cliquez sur le bouton la première fois que le gestionnaire d'événement ajoute l'attribut pour le bouton. Après la publication, vous pouvez cliquer sur le bouton de nouveau pour ouvrir la fenêtre contextuelle, comme le bouton maintenant le client a côté code.
Ajouter l'attribut dans le Page_Load de sorte que le bouton a toujours de l'attribut, ou dans le gestionnaire d'événements ajoutez le code de la page qui appelle la fonction immédiatement après la publication:
Ce problème se produit parce que la forme en étant soumis à la souris (PostBack). Si vous renvoie false dans l'attribut onclick, il devrait annuler la soumission d'un formulaire. Vous pouvez également utiliser OnClientClick.