5

自分のサイトに Facebook の Open Graph メタ タグと同じ機能を持つカスタム HTML タグを作成できないかと考えていました。

私は次のようなことを考えていました:

<mysite title="My website title" description="Some description" 
    image="http://mysite.com/image.png">

次に、PHP を使用してこのデータをフェッチします (メタタグを使用して既にこれを行うことができます)。

いくつかのポイント:

  • HTML5 を使用していますが、この方法を使用すると構文に問題はありますか?

  • Google+ は次のようなものを使用します: g:plusone

4

4 に答える 4

4

主な問題は、カスタム要素が正式に無効であることです。

ドキュメントの内容は次のとおりです。

作成者は、この仕様またはその他の該当する仕様で許可されていない要素、属性、または属性値を使用してはなりません。使用すると、言語が将来拡張されることが大幅に難しくなります。

HTML5 要素

ところで、W3 バグトラッカーのカスタム要素に関しては、将来を見据えた堅実な提案がありましたが、いつものようにクールな男 Hixie によって拒否されました。

于 2012-11-10T01:50:35.317 に答える
2

はい、ページをXHTML(XML)としてレンダリングすると、これを実行できるはずです。<html xmlns="http://www.w3.org/1999/xhtml">オープニング<html>タグで使用します。Marat Tanalinが言ったように、それは「正式に」無効な構文です。

simplexml_load_string()XPATHを使用してこれらの要素をクエリすることにより、さまざまな方法でドキュメントを解析できます。

$fileContents = file_get_contents('/path/to/template', FILE_USE_INCLUDE_PATH);
$template     = simplexml_load_string($fileContents);
$myTags       = $template->xpath('//mysite');
于 2012-11-10T01:57:06.110 に答える
2

Marat Tanalinは正しいです。HTML5では、指定されていない要素/属性/値を「発明」することは許可されていません。Alohciは、それが理由である理由の良い例を示しています。

mmmshuddupは、XHTML5を使用できることに注意しています。ただし、その場合は、語彙を正式に正しく拡張すれば許されると思います。結局のところ、それはXMLです。ただし、ポリグロット(X)HTML5ドキュメントにすることはできなくなりました。

私はあなたのために働くことができる(X)HTML5ソリューションがあるかもしれないと思います(しかし、あなたの特定のユースケースに依存します):data-*属性

<div data-title="My website title" data-description="Some description" data-image="http://mysite.com/image.png">…&lt;/div>

data-自由に定義できる文字列が後に続く属性を「発明」することができます。

もう1つの可能な(より複雑な)方法は、ニーズに合った既存の語彙でmicrodataを使用することです(見つからない場合は、自分で作成できます)。あなたが提供したい(メタ)データが他の人にとって価値がある場合にのみ、私はこのように行きます。

于 2012-11-10T02:43:28.320 に答える
1

この質問を参照してください:Chromeの「翻訳」DOMプロパティの削除

ここで、誰かが非標準の属性名を使用した(非標準の要素名には同じ問題が発生する可能性がある)ために、名前が標準化されてブラウザで解釈され、質問者は次のような恐ろしい回避策に直面しています。大量のやり直しを避けてください。

関係するリスクを正当化するユースケースを見たことがありません。

もちろん、あなたがたまたまグーグルやフェイスブックと同じくらい大きい場合、あなたの非標準的な名前は、名前の衝突に巻き込まれないように十分に知られている可能性があります。

于 2012-11-10T02:00:13.110 に答える