2011-09-16 34 views
1

我是新的html5和javascript。我已經編寫了一個基本的畫布代碼,並且在HTML頁面上有按鈕,其簡單的警報。問題是,它的工作正常(警告框彈出)的IE - 9,歌劇,鉻,但火狐什麼也沒有發生。 請指出我犯的錯誤。 這裏是我的代碼firefox,javascript函數不叫

<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> 

在此先感謝。

+0

火狐的什麼版本?安裝[Firebug](http://getfirebug.com),使用'console.log()'或**一個真正的調試器**(Firebug爲FF提供)而不是'alert()',看看什麼錯誤s)出現在控制檯中。 –

回答

1

在下面這行中,您沒有通過id獲取change元素,而是直接調用addEventListener方法,因爲js中沒有這樣的對象。其他瀏覽器允許您爲了運行寫得不好的腳本而執行此操作。

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

應該改爲

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

你也需要通過this作爲方法參數

+0

它dosnt爲我工作! –

+0

不起作用不夠描述。你有什麼錯誤或什麼? –

+0

沒有警報..沒有我應該得到一個提醒。但我沒有得到它 –