2012-07-07 108 views
1

我試圖使用html5拖拽& drop api,並且它在windows機器上的chrome 20.0.1132上運行得非常好,但最有趣 - 與mac os獅子上的相同版本的Chrome不管用。我的意思是dragstart正在工作,但是drop event,dragleave,dragover沒有被解僱。 這裏是HTML:丟棄不適用於Chrome Mac版本

<form id="fake_form" action="#" > 
      <div id="canvas_wrapper" style="overflow: hidden;width: 600px; position: relative;border: 1px solid black; margin-left: 30px;"> 
       <canvas width="600" height="300" > 
       </canvas> 
      </div> 
</form> 

這裏的javascript:

var canvas = $('canvas')[0]; 
    canvas.addEventListener('dragenter', function(e){ 
     console.log('dragenter'); 
    }, false); 
    canvas.addEventListener('dragleave', function(){ 
     console.log('dragleave'); 
    }, false) 
    canvas.addEventListener('dragover', function(e){ 
     console.log('dragover'); 
     if(e.preventDefault){ 
      e.preventDefault(); 
     } 
     return false; 
    }, false); 
    canvas.ondrop = function(e){ 
     console.log('ondrop'); 
    /** OTHER CODE **/ 

如果有幫助:在Safari瀏覽器上相同的MAC - 它的作品,我真的拖動圖像標記他們中的一些具有可拖動屬性,其中一些 - 不是。剛剛檢查 - 金絲雀版本22它的工作原理。

UPDATE:我想通了,有一些魔術dragstart事件,如果我刪除線 本e.dataTransfer.setData('src', src_var)萬物變得在爲這個問題

回答

1

解決方案 - 當您使用e.dataTransfer.setData第一個參數應該是右mime類型,我將其更改爲text/plain,並且所有內容都正常工作

相關問題