代码之家  ›  专栏  ›  技术社区  ›  Filip Dupanović

HTML5和RDFA支持

  •  9
  • Filip Dupanović  · 技术社区  · 15 年前

    我将向现有的HTML5 Web应用程序介绍开放图形协议,我希望在不引入任何不必要的CRUD的情况下包含必要的RDFA数据。

    我看过 HTML+RDFa 1.1 起草并与之比较 Facebook's Open Graph protocol documentation ,我只需要设置 lang 属性 html 元素和它的HTML5就绪:

    <html lang="en">
    <head xmlns:og="http://opengraphprotocol.org/schema/">
        <title>The Rock (1996)</title>
        <meta property="og:title" content="The Rock"/>
        <meta property="og:type" content="movie"/>
        ...
    

    起初,我对HTML5中的RDFA支持感到困惑,因为有这么多消息来源声称,在我最终登上草案之前,它不能以有效的方式完成。我对手头的问题不在行,所以我希望有人能看看这个,并对草案在今天的浏览器中所得到的支持发表评论。

    5 回复  |  直到 13 年前
        1
  •  16
  •   Frank N dqthe    15 年前

    W3C验证器抱怨

    <meta property="whatever" content...
    

    要求财产

    <meta name="whatever ...
    

    相反,对吗?如果Facebook是,你最关心的是,我很高兴地告诉你,它可以容忍后一种形式,那么就去做吧:

    <meta name="og:title" content="My nice picture"/>
    <meta name="og:type" content="article"/>
    <meta name="og:url" content="http://foobar123.com/test/simple.php"/>
    

    使用FB测试时: 当心 ,FB缓存页面部分(全局,Facebook端,硬加载不会有帮助),因此每次更改内容以测试Facebook发布时,请确保向URL添加“唯一”(但无意义)路径信息或获取参数:

    mysite.com/test.php/bogusParam1
    mysite.com/test.php/bogusParam2
    mysite.com/test.php/bogusParam3
    ...
    mysite.com/test.php?foo=hello
    mysite.com/test.php?foo=howdy
    mysite.com/test.php?foo=aloha
    
        2
  •  6
  •   Florian    15 年前

    HTML5和HTML+RDFa1.1都还在开发中,这意味着我们现在所说的一切可能都会发生变化。你的问题有两个方面:

    • 有效吗?
    • 它会产生互操作性问题吗?

    为了有效性,您可以定期检查中规范的实现状态。 W3C validator . 它内置了一个实验性的HTML5验证程序。

    HTML5中的名称空间仍然存在很大争议。它们创建了导致不同于实际意图的DOM的问题,这引出了我的第二个问题:互操作性问题。您可以测试如何使用 Live Dom Viewer 或者用类似的东西 Opera Dragonfly 在浏览器中浏览文档的DOM表示。

    如果您想更深入地探讨HTML5DOM和RDFA的主题,您可能需要阅读Jenni的 blog post .

    到目前为止,您的标记并不是真正的问题,但是如果您涉及到JavaScript,那么您必须小心使用带有列的名称空间和值。

        3
  •  2
  •   Mike Gifford    15 年前

    2009年的草案似乎试图构建一个同时验证两者的模式。

    http://dev.w3.org/html5/rdfa/rdfa-module.html

        4
  •  1
  •   262media    14 年前

    这是HTML5中的核心方法:

        <meta property="http://ogp.me/ns#locale" content="en_US" />
    <meta property="http://ogp.me/ns#site_name" content="xxxxxx" />
    <meta property="http://ogp.me/ns#type" content="website" />
    <meta property="http://ogp.me/ns#title" content="xxxxxxxxxxxx" />
    <meta property="http://ogp.me/ns#description" content="xxxxxxxxxxxxxxxx" />
    <meta property="http://ogp.me/ns/fb#app_id" content="xxxxxxxxxxxxxxxx" />   
    

    等。。。 希望它有帮助

        5
  •  1
  •   WraithKenny    13 年前

    现在有一天,html5验证程序和facebook都支持html+rdfa 1.1,所以现在您只需使用属性而不是名称。您也不必在HTML5中处理xmlns声明。og前缀是在(rdfa)规范中定义的,因此您不必定义它。你可以明确地说 prefix="og: http://ogp.me/ns#" 但是在HTML或head标签上。