HTML"专用"数据设备类型的目的是什么?

Ope*_*War 1 javascript php tags html5 doctype

我注意到在很多模板引擎中,在HTML5中,在各种框架中和普通的php站点中,都有data-device-type ="dedicated"添加到<HTML>标签上.

为什么这样做?是否存在某种对此数据设备类型作出反应的默认浏览器行为?为什么总是包括它?这不会使数据设备类型本身过时

以下是HTML5 index.html中的示例:

<!DOCTYPE html>
<html lang="en-IN" class="no-js" data-device-type="dedicated">
<head>

<title>doordie.co.in - all info 2 all </title>
Run Code Online (Sandbox Code Playgroud)

如您所见,该<html>元素将具有此数据设备类型.有人可以解释为什么经常这样做吗?

Dai*_*Dai 5

data-device-type不是HTML5属性.前缀的所有属性data-都是应用程序定义的.那么该属性的"真实"名称就是device-type.

显然data-device-type,data-device-agent和其他人似乎是最近被Web开发人员采用的惯例 - 尽管我找不到任何规范或权威的来源.搜索GitHub显示了许多使用它的项目,但它们似乎都没有共享任何可能使用该属性的常见JavaScript库.

但是每个人似乎都以同样的方式使用它:一些服务器端代码将值设置为"board"(对于像Raspberry Pi这样的东西),"专用"(看似像亚马逊Kindle之类的东西),"桌面"(用于桌面和笔记本电脑)允许JavaScript然后读取值并采取相应的行动 - 但是我找不到任何权威信息.

旁注:这些用例似乎有服务器端客户端检测的气味.这是一个坏主意,因为你永远不会信任客户端(这就是为什么浏览器用户代理字符串不再有意义了:他们都试图伪装成其他浏览器来击败糟糕的服务器端用户代理嗅探技术).

同样,请注意特定data-属性不在HTML5规范中,因此就Web浏览器而言,没有特别的意义.如果你想看看任何特定的应用程序如何使用属性值,我建议你grep源代码device-type,看看是什么代码设置和读取属性 - 它可以是客户端或服务器端.