html - 删除在 Chrome Mac 版本上不起作用

标签 html macos google-chrome drag-and-drop

我尝试使用 html5 拖放 api,它在 Windows 计算机上的 chrome 20.0.1132 上运行得很好,但最有趣的是 - mac os lion 上的同一版本的 chrome 不起作用。我的意思是,dragstart 正在工作,但 drop 事件、dragleave、dragover 未触发。 这是 HTML:

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

如果有帮助:在同一台 Mac 上的 Safari 上 - 它可以工作,我正在拖动图像标签,其中一些具有可拖动属性,其中一些 - 没有。刚刚检查过 - 在 Canary mac 版本 22 上它可以工作。

更新:我发现如果我删除行,dragstart 事件有一些魔力 有了这个e.dataTransfer.setData('src', src_var)一切都变得正常

最佳答案

此问题的解决方案 - 当您使用e.dataTransfer.setData时,第一个参数应该是正确的mime类型,我将其更改为text/plain,一切都是开始工作

关于html - 删除在 Chrome Mac 版本上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11375360/

相关文章:

iphone - 如何彻底改变 Xcode 项目?

swift - 在 Swift-OSX 中的 NSImage 上写入文本

php - 简单的 html dom 解析器表到数组

html - 如何剪辑 SVG 图?

macos - 如何让输入文件在 WKWebView 中工作?

html - 使用 knockoutjs 时 Chrome 中的最大长度约束验证异常

javascript - 尝试将 Chrome Javascript 扩展移植到 Safari

google-chrome - Chrome 有 "Work Offline"选项吗?

css - HTML 5 奇怪的 img 总是在底部添加 3px 边距

javascript - Linux Compiz 对 HTML 元素的影响