firefox, функция javascript не вызывается - PullRequest
1 голос
/ 16 сентября 2011

Я новичок в 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> 

заранее спасибо.

1 Ответ

1 голос
/ 16 сентября 2011

В следующей строке вы не получаете элемент change по id, а вместо этого пытаетесь вызвать метод addEventListener непосредственно для него, поскольку такого объекта в js нет. Другие браузеры позволяют вам делать это ради запуска плохо написанных скриптов.

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

должно быть изменено на

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

Также вам нужно передать this в качестве параметра метода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...