Pro Javascript代码无法运行

时间:2013-10-22 00:39:27

标签: javascript html

我认为这里不是正确的词。我无法让它运行。

这是一段非常简单的代码。如果我只输入alert("Working");它运行正常。

无论如何,这是整个代码,也许你们可以帮我弄清楚我做错了什么。

<!DOCTYPE html>
<html>
<head>
    <title>Events</title>
</head>
<body>
<script type="text/javascript">
    var btn = document.getElementById("btn");
    btn.attachEvent("onclick", function(){
        alert("Clicked");
    })

</script>
<input id="btn" type="button" value="Press me">
</body>
</html>

3 个答案:

答案 0 :(得分:3)

几个问题:

  1. 在加载文档之后,您的代码才能运行。如果它运行得太快,它将无法在页面中找到对象。最简单的方法是将代码块移到</body>标记之前。
  2. attachEvent()仅适用于旧版本的IE。所有现代浏览器都支持.addEventListener()
  3. 修订的HTML /代码:

    <!DOCTYPE html>
    <html>
    <head>
        <title>Events</title>
    </head>
    <body>
    <input id="btn" type="button" value="Press me">
    <script type="text/javascript">
        var btn = document.getElementById("btn");
        btn.addEventListener("click", function(){
            alert("Clicked");
        })
    
    </script>
    </body>
    </html>
    

    工作演示:http://jsfiddle.net/jfriend00/Dmqdn/

答案 1 :(得分:0)

这适用于FF(和其他现代浏览器):

document.addEventListener("DOMContentLoaded", function(event) {
    var btn = document.getElementById('btn');
    btn.addEventListener('click', function() {
        console.log('Clicked');
    });
});

确保在尝试访问DOM之前完全加载DOM是最安全的。

我使用过console.log,你应该熟悉它,它会帮助你很多。查看FireBug for FF,Chrome中的开发工具。

答案 2 :(得分:0)

以下是说明解决方案的jsfiddle。你需要做两件事来完成这项工作:

  1. <script>标记移至输入
  2. 下方
  3. attachEvent替换为addEventListenerattachEventno longer supported
  4. 以下是代码:

    <input id="btn" type="button" value="Press me">
    
    <script type="text/javascript">
        var btn = document.getElementById("btn");
        btn.addEventListener("click", function(){
            alert("Clicked");
        })
    </script>