1

Facebook like button (XFBML) 使用了这个

<fb:like send="true" width="450" show_faces="true"></fb:like>
  1. 显然,这<fb></fb>是一个标签,XML 会接受它,但它不是 HTML。那么浏览器将其保存在文档中是否正常?
  2. 这叫什么编程技术?这是正确的方法吗?或者只是另一种创建隐藏元素并替换id="fb"?
  3. :somethingin<fb:like>代表什么?如何使用 javascript 访问它?
4

1 回答 1

0

这是XHP!

XHP 是Facebook 创建的 PHP 扩展。它使 PHP 能够理解 XML 节点,因此您可以编写如下内容(来自他们自己的示例):

<?php
  $href = 'http://www.facebook.com';
  echo <a href={$href}>Facebook</a>;
?>

XHP 还允许您创建可在标记中使用的 PHP 类。所以<fb:like />节点实际上是在编译时变成了一个PHP类。类的定义大概是这样的:

<?php
  class :fb:like extends :x:element {
    ...
  }

你可以在上面的 Github 链接以及关于 XHP的创作者博客上阅读更多相关信息。

所以回答你的问题:

  1. 不会被浏览器处理,而是被 XHP 处理。XHP 将其转换为 PHP 对象,最后将其转换为有效的 HTML 标记。使用 XHP 时确实如此,但我们也可以使用相同的标签,而不使用 XHP。我猜这只是在 javascript 中解析标签并将变量发送到 API 的问题,API 可能使用 API 重新创建结构,然后发回 HTML。
  2. 并不是一种真正的技术,而是 Facebook 开发的一种独特的东西,可以让他们使用 PHP 的工作更轻松。
  3. 同样,当它返回到浏览器时,它已被 XHP 转换(通过 javascript 将其发送到 Facebook 之后)。尝试查看渲染版本 - 它看起来与简单<fb:like>标签不同。
于 2013-05-22T21:59:38.433 回答