firefox,未调用javascript函数

firefox,未调用javascript函数,javascript,html,Javascript,Html,我不熟悉html5和javascript。我已经为canvas编写了一个基本代码,我在html页面上有一个按钮,它是一个简单的警报。问题是,它在IE-9、OPERA和chrome上运行良好(警报框弹出),但在firefox上什么也没发生。 请指出我在哪里犯了错误。 这是我的密码 <script> if(window.addEventListener) { window.addEventListener('load', function () {

我不熟悉html5和javascript。我已经为canvas编写了一个基本代码,我在html页面上有一个按钮,它是一个简单的警报。问题是,它在IE-9、OPERA和chrome上运行良好(警报框弹出),但在firefox上什么也没发生。 请指出我在哪里犯了错误。 这是我的密码

  <script> 

       if(window.addEventListener) {

       window.addEventListener('load', function ()
{

           var my = new Array();
           var i=0;
            var canvas = document.getElementById("myCanvas");
            var context = canvas.getContext("2d");
            var imageObj = new Image();
            var imageObj1 = new Image();
            imageObj.onload = function(){
       imageObj1.src = "Sunflower.gif";
       context.drawImage(imageObj, 0, 0);
            }
            imageObj.src = "Crystal-outline.gif";

            change.addEventListener('mousedown', function () {ButtonDown (change)}, false);

            function ButtonDown (change)
{ alert('welcome to my page');}



         init();
}, false); }
    </script> 
</head> 
<body >

    <canvas id="myCanvas" width="870" height="150"> 
    </canvas><br>
    <button id="change" type="button">Change</button>

</body> 

if(window.addEventListener){
window.addEventListener('load',函数()
{
var my=新数组();
var i=0;
var canvas=document.getElementById(“myCanvas”);
var context=canvas.getContext(“2d”);
var imageObj=新图像();
var imageObj1=新图像();
imageObj.onload=函数(){
imageObj1.src=“Sunflower.gif”;
drawImage(imageObj,0,0);
}
imageObj.src=“Crystal outline.gif”;
addEventListener('mousedown',function(){ButtonDown(change)},false);
功能按钮向下(更改)
{alert('welcome to my page');}
init();
},假);}

改变

提前感谢。

在下一行中,您没有按id获取change元素,而是尝试直接在其上调用addEventListener方法,因为js中没有此类对象。其他浏览器允许您这样做是为了运行写得不好的脚本

change.addEventListener('mousedown', function () {ButtonDown (change)}, false);
应该改成

document.getElementById('change').addEventListener('mousedown',function(){ButtonDown(this)},false)


另外,您需要将
这个
作为方法参数传递给下一行中的,因为在js中没有这样的对象,所以您不会通过id获取change元素,而是尝试直接调用addEventListener方法。其他浏览器允许您这样做是为了运行写得不好的脚本

change.addEventListener('mousedown', function () {ButtonDown (change)}, false);
应该改成

document.getElementById('change').addEventListener('mousedown',function(){ButtonDown(this)},false)


您还需要将此
作为方法参数传递

Firefox的哪个版本?安装、使用
console.log()
或真正的调试器(Firebug为FF提供的调试器)而不是
alert()
,然后查看控制台中出现的错误。Firefox的版本是什么?安装、使用
console.log()
或真正的调试器(Firebug为FF提供的调试器)而不是
alert()
,然后查看控制台中出现了什么错误。无法工作说明不够。您是否收到任何错误或什么?没有警报。。没什么,我应该得到警告。但我不明白,它不起作用,描述不够。您是否收到任何错误或什么?没有警报。。没什么,我应该得到警告。但我不明白