Onload関数からjavascriptでonblurまたはonclickイベントをリッスンする方法はありますか?要素自体で行う代わりに。
<input type="button" id="buttonid" value="click" onclick="func()">
のようなものになるために
function onload() {
var button = document.getElementById("buttonid");
button.addEventListener("onclick", function() { alert("alert");});
}
編集
<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>
更新
<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>
方法は問題ありませんが、click
イベントのイベントリスナーは次のようになります。
_button.addEventListener("click", function() { alert("alert");});
_
click
イベントには、_"click"
_ではなく、_"onclick"
_を付加する必要があります。
古い方法でこれを試すこともできます:
_function onload() {
var button = document.getElementById("buttonid");
// add onclick event
button.onclick = function() {
alert("alert");
}
}
_
また、IE <9を監視する必要があります。これらのVはattachEvent()
を使用しているためです。
_if(button.addEventListener){
button.addEventListener('click', function() { alert("alert");});
} else if(button.attachEvent){ // IE < 9 :(
button.attachEvent('onclick', function() { alert("alert");});
}
_
編集に基づいて、これ 動作するはずです 正常に動作します 。
_<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>
_
window.onload = on_load();
を使用しないでください。これにより、他のすべてのonload
イベントリスナーが起動されなくなるか、イベントリスナーが上書きされる危険があります。 onload
イベントを上記の方法でアタッチすることを検討してください。
このようにDOMを使用するより良い方法(完全に機能します)。モミはあなたの関数/クラスを書き、それを以下で使用します:
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>
この数行をどこで使用したかは関係ありません。あなたはそれを頭または体に入れることができます。
<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>
コメントセクションで会話を進めるには...
@simplified、これをページの<head>に入れてみてください
<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>
そして何が起こるかを見てください。また、使用しているブラウザについてもお知らせください。 https://developer.mozilla.org/en/DOM/element.addEventListener
イベントハンドラを動的に追加するより良い方法は、jQueryなどのJavaScriptライブラリを使用することです。これは、ブラウザ固有の詳細を抽象化するためです。