【问题标题】:firefox , javascript function not being calledfirefox,javascript函数没有被调用
【发布时间】:2011-09-16 23:31:07
【问题描述】:

我是 html5 和 javascript 的新手。我已经为画布编写了一个基本代码,并且我在 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> 

提前致谢。

【问题讨论】:

  • 什么版本的火狐?安装Firebug,使用console.log()真正的调试器(Firebug 为FF 提供)而不是alert(),然后查看控制台中出现的错误。

标签: javascript html


【解决方案1】:

在下一行中,您不是通过 id 获取更改元素,而是尝试直接在其上调用 addEventListener 方法,因为 js 中没有这样的对象。其他浏览器允许您这样做以运行编写糟糕的脚本。

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

应该改成

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

另外你需要传递this作为方法参数

【讨论】:

  • doesn't work 描述性不够。你有什么错误吗?
  • 没有警报.. 我不应该收到警报。但我不明白
猜你喜欢
  • 2011-12-30
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多