【问题标题】:How to check for IE Drag & Drop support of any element如何检查任何元素的 IE 拖放支持
【发布时间】:2023-04-10 08:32:02
【问题描述】:

有没有办法检查用户代理是否支持拖放特定元素(div、tr、...)?

我有一个带有可拖动表格行的表格,它在 Chrome 中运行良好。但是由于 Internet Explorer(最高版本 9)只支持图像和链接(以及其他一些)的拖动,我想在表格行内给它一个小锚点拖动句柄。我的代码如下所示:

<table>
    <tr draggable="true">
        <td><a class="drag-handle"></a> Hello World</td>
    </tr>
</table>

JS/jQuery:

$('tr[draggable]').each(function() {
    // Remove draggable="true" from <tr>
    $(this).attr('draggable', '');
    // Add draggable="true" to <a class="drag-handle">
    $(this).find('.drag-handle').attr('draggable', 'true');
});

显然,要真正完成这项工作还有很多工作要做,但要点是:如果用户的客户端不支持拖动 a (IE

现在我只想在用户的客户端不支持拖动表格行的情况下进行替换。是否有任何已知的特征检测?

【问题讨论】:

  • 这个问题的答案可能有用:stackoverflow.com/questions/2856262/…
  • jqueryui.com 并使用这个:$(this).removeAttr('draggable'); 插入这个:$(this).attr('draggable', '');jsfiddle.net/k6EDZjqueryui.com/demos/draggable
  • 当您在寻找代码来测试浏览器支持时,检查的好地方是Modernizr。它包括对此功能和许多其他功能的测试。
  • 谢谢,迈克尔。显然,我首先查看了 Modernizr,但它只检查浏览器是否支持 any DND。所以 IE 得到了 Modernizr 的支持,尽管它不支持拖动我提到的元素。

标签: internet-explorer html drag-and-drop


【解决方案1】:

来自Detecting HTML5 Drag And Drop support in javascript

if('draggable' in document.createElement('span')) {
    alert("Drag support detected");
}

感谢Mark Rhodes 的提示!还要感谢micha 指出我的jQuery 错误(removeAttr('draggable') 而不是attr('draggable'))。

【讨论】:

  • 这在 IE10 中报告为 true。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
  • 2011-10-26
  • 1970-01-01
相关资源
最近更新 更多