我想创建某种API,人们可以在网站中包含隐藏的信息,这样机器人就可以读取信息。
我知道使用元标记是可能的,但我正在考虑使用某种单独的标记,因为这样我就可以使用DOM,它更适合使用,而且更容易被人类阅读。
示例:
<html>
...
<body>
...
<mytag id="123" foo="bar" bar="foo"></mytag>
...
<mytag id="345" foo="bar" bar="foo"></mytag>
...
</body>
</html>我的问题是,是否有可能通过创建某种DTD来使单个标记以某种方式符合标准?
如果可能的话,我想支持HTML4.01、XHTML和HTML 5。
发布于 2018-07-07 13:17:47
必须支持HTML4.01和HTML5使得这很难。不能使用meta**-**name元素(HTML4.01的会起作用,但必须为HTML5注册),不能使用自定义的HTML4.01属性(HTML4.01中不允许使用),不能使用Microdata (只定义 for HTML5+),不能使用自定义元素 (只定义 for HTML5+)。
我能想到两种方法。
script元素作为数据块
在HTML5中,script元素也可以用于数据块。。例如:text/html,text/plain。
HTML4.01规范并不是这样定义的,但它仍然是可能的/有效的(它将理解为“脚本”,但是如果用户代理不识别脚本的内容类型,则不会试图运行它)。
缺点:内容不是文档DOM的一部分。
RDFa
它是允许进入 HTML4.01和HTML5 (您可能必须将DOCTYPE用于较旧的HTML版本,例如,对于XHTML)。
您不能使用自定义元素,但您可以添加property和content属性(用于名称-值对),您可以使用typeof来表示“项”(例如,您将使用元素名),还可以在body中使用meta和link元素(默认情况下是视觉上隐藏的)。
<div vocab="https://api.example.com/voc#" class="the-hidden-information">
<div typeof="Item-123">
<meta property="foo1" content="bar1" />
<meta property="foo2" content="bar2" />
</div>
<div typeof="Item-345">
<meta property="foo1" content="bar1" />
<link property="foo5" href="/some-url" />
</div>
</div>(当使用RDFa 1.0而不是1.1时,您必须使用vocab)
https://stackoverflow.com/questions/51222713
复制相似问题