Existe-t-il un moyen d'écouter les événements onblur ou onclick en javascript à partir d'une fonction onload? au lieu de le faire dans l'élément lui-même.
<input type="button" id="buttonid" value="click" onclick="func()">
devenir quelque chose comme
function onload() {
var button = document.getElementById("buttonid");
button.addEventListener("onclick", function() { alert("alert");});
}
MODIFIER
<html>
<head>
<script>
function onload() {
var button = document.getElementById("buttonid");
if(button.addEventListener){
button.addEventListener("click", function() { alert("alert");});
} else {
button.attachEvent("click", function() { alert("alert");});
};
};
window.onload = onload;
</script>
</head>
<body>
<input type="button" id="buttonid" value="click">
</body>
</html>
METTRE À JOUR
<script type="text/javascript">
function on_load() {
var button = document.getElementById("buttonid");
if(button.addEventListener){
button.addEventListener("click", function() { alert("alert");});
} else {
button.attachEvent("click", function() { alert("alert");});
};
};
window.onload = on_load();
</script>
La façon dont vous le faites est correcte, mais votre auditeur d’événement pour l’événement click
devrait ressembler à ceci:
button.addEventListener("click", function() { alert("alert");});
Remarquez que l'événement click
doit être associé à "click"
et non "onclick"
.
Vous pouvez également essayer de le faire à l'ancienne:
function onload() {
var button = document.getElementById("buttonid");
// add onclick event
button.onclick = function() {
alert("alert");
}
}
Vous devez également surveiller IE <9, car ceux-ci utilisent attachEvent()
. Attachez l'événement de cette façon, cela fonctionnera donc avec les navigateurs de dinosaures:
if(button.addEventListener){
button.addEventListener('click', function() { alert("alert");});
} else if(button.attachEvent){ // IE < 9 :(
button.attachEvent('onclick', function() { alert("alert");});
}
En fonction de votre modification, cette devrait marcher fonctionne très bien .
<html>
<head>
<script type="text/javascript">
function init() {
var button = document.getElementById("buttonid");
if(button.addEventListener){
button.addEventListener("click", function() { alert("alert");}, false);
} else if(button.attachEvent){
button.attachEvent("onclick", function() { alert("alert");});
}
};
if(window.addEventListener){
window.addEventListener("load", init, false);
} else if(window.attachEvent){
window.attachEvent("onload", init);
} else{
document.addEventListener("load", init, false);
}
</script>
</head>
<body>
<input type="button" id="buttonid" value="click">
</body>
</html>
N'utilisez pas window.onload = on_load();
, cela évitera que tous les autres écouteurs d'événements onload
soient renvoyés ou vous risquez que votre auditeur d'événements soit écrasé. Envisagez de rattacher l'événement onload
à la manière que je suggère ci-dessus.
La meilleure façon de l'utiliser est DOM (fonctionne parfaitement) comme ceci . Les sapins écrivent votre fonction/classe et l'utilisent dans:
document.addEventListener('DOMContentLoaded', function(){
// put here code
});
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function myFunc(){ alert('Hellow there!'); }
document.addEventListener('DOMContentLoaded', function(){
document.getElementById('mybtn').addEventListener('click', myFunc);
});
</script>
</head>
<body>
<button id="mybtn">Cklik!</button>
</body>
</html>
Peu importe où vous avez utilisé ces quelques lignes. Vous pouvez le mettre en tête ou en corps.
<script>
var click = document.getElementById("click");
click.addEventListener("click", function() {
var required = document.getElementById("required").value;
if (required===null || required==="") {
alert("Please make sure all required field are completed");
}
else {
alert("Thank you! \nYour sumbission has been accepted and you will receive a conformation email shortly! \nYou will now be taken to the Home page.");
}
});
</script><html>
<body>
<div id="popup">
<textarea cols="30" rows="2" name="required" id="required"></textarea>
<input type="submit" id="click" value="Submit">
<input type="reset" value="Reset" />
</div>
</body>
</html>
pour approfondir ma conversation dans la section commentaires ...
@ simplifié, essayez de mettre ceci dans la <tête> de votre page
<script type="text/javascript">
function my_onload() {
var button = document.getElementById("buttonid");
if(button.addEventListener){
button.addEventListener("click", function() { alert("alert");}, true);
}else{
button.attachEvent("click", function() { alert("alert");});
};
};
window.onload = my_onload;
</script>
et voir ce qui se passe. Nous vous invitons également à nous indiquer le navigateur que vous utilisez . https://developer.mozilla.org/en/DOM/element.addEventListener
Un meilleur moyen d’ajouter dynamiquement des gestionnaires d’événements serait d’utiliser une bibliothèque JavaScript telle que jQuery, car elle supprime les détails propres au navigateur.