JavaScript事件处理程序不工作

JavaScript事件处理程序不工作,javascript,html,Javascript,Html,我试图通过不同的方法添加两个事件处理程序,一个使用document.getElementById,另一个使用内联css。我遇到的问题是,只有对JS函数的内联调用才有效。在网上查看各种示例后,我找不到任何问题。 提前谢谢 Html代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ht

我试图通过不同的方法添加两个事件处理程序,一个使用document.getElementById,另一个使用内联css。我遇到的问题是,只有对JS函数的内联调用才有效。在网上查看各种示例后,我找不到任何问题。 提前谢谢

Html代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Dynamic Button</title>
</head>
<body>
    <script type="text/javascript" src="button.js"></script>
    <button type="button" id="AButton" onmouseover="DisplayAlert2();">Button</button>
</body>
</html>

您的问题是,脚本元素在DOM中存在button元素之前被加载和执行(几乎可以肯定)。交换他们的位置,它应该可以正常工作:

<button type="button" id="AButton" onmouseover="DisplayAlert2();">Button</button>
<script src="button.js"></script>
按钮
修改DOM的脚本应该在加载事件或DOM就绪后调用,或者直接放在结束体标记之前,以便在加载DOM后执行

顺便说一句,只有当脚本不是javascript时,脚本元素的type属性才是必需的。此外,按照惯例,以大写字母开头的函数名是为构造函数保留的,因此调用函数displayAlert1和displayAlert2

对我有效:
DisplayAlert2()
在html中,但由于初始化脚本,它会被
DisplayAlert1()
覆盖。这是在加载dom后运行的吗?(至少在html中的
AButton
之后?)分配给onclick属性如何替换onmouseover侦听器的值?
<button type="button" id="AButton" onmouseover="DisplayAlert2();">Button</button>
<script src="button.js"></script>