【发布时间】: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