2011-01-23 3 views
1

私はレビューのために、いくつかのサイトコードの上に探していますし、例えば、<ul>内で使用されている属性「部位」に気づいた:私はこれが何であるかを説明するために、任意のリソースを見つけるcan'y"site"要素属性 - それは何ですか?

<li site:bluray="154" site:ds="91" site:dvd="345" site:pc="77" site:ps3="248" site:psp="49" site:wii="153" site:xbox360="216" ><a href="#">In Stock</a></li> 

- ん上記のことが実際にやっていることは誰でも知っている?

感謝

+3

はXML名前空間のようです(http://en.wikipedia.org/wiki/XML_namespace)。このスニペットの元のURLがありますか? –

+0

ありがとう、それはこのサイトからです:http://www.shopto.net/ – Dave

+0

私の編集を参照してください、クイックソースコードの検索は、秘密を明らかにした。 :)あなたが '@'を使って通知しない限り、piquadratはあなたのコメントを見ません。たとえば、次回のコメント時に '@ piq'が通知を送信します。 –

答えて

1

人は<li>要素に(おそらく動的なサーバー側のコードにより)追加カスタム属性です。またはいくつかの他のコードで使用してもしなくてもよいいくつかのデータを - それは、それ自体で何もしない

、それが要素に名前IDを与えるように同じです。

ウェブサイトには、リストアイテム内のネストされたリンクのクリックを識別するいくつかのクライアントサイドスクリプトがあり、リストアイテム要素からデータを取り出し、適切なAJAXリクエストをサーバーまたはデータで何をしているのかを示します。

クライアントサイドスクリプトを見ると、それらの属性の背後にある実際の目的を理解できる可能性が高くなります。 :)

編集:あなたのケースでは、JSファイルhttp://media1.shopto.net/scripts/site.jsは、オンザフライでのリンクのhrefを構築するためにそれらの属性を使用して、ここではそのファイルからのコードの関連するブロックです:

// The current href on each link needs to have the platform pre-pended. 
        // So store the current href before we change it. 
        link.submenu.getElements('ul.category a').each(function(sublink) { 
         var count = sublink.getParent().get('site:'+platform.replace('%20','')); 

         if(count==null && !sublink.getParent().get('site:all')) 
         { 
          sublink.getParent().removeChild(sublink); 
         } else { 
          sublink.set('href', href + sublink.get('href').replace('#','')); 

/* 
          if(count!=null) 
          { 
           sublink.set('text',sublink.get('text') + ' (' + count + ')'); 
          } 
*/ 
         } 
        }); 
+0

おかげさまで本当に助かりました。 – Dave

+0

うわー、本当にありがとう - それは素晴らしいものです!ありがとうございます – Dave

+0

乾杯@私は少し物事を明確にすることができたことをうれしく思います。 :) –

0

siteXML Namespacesあたりとしてだけで名前空間接頭辞です:XMLによって暗黙のデータモデルでは

、XML文書は 要素のツリーが含まれています。各要素には、要素タイプ名( タグ名とも呼ばれます)と属性セットがあります。各属性は名前 と値で構成されています。アプリケーションは通常、要素タイプ名 と要素の属性を使用して、 要素の処理方法を決定します。名前空間を持たないXML 1.0では、要素型名と 属性名は、プログラミング言語の識別子に似て、 文字の制限付きセットを使用する非構造化文字列です。私は と呼ぶでしょう。これらの名前はローカル名です。これは、ウェブのような環境の分散型 では問題があります。 1つのXML文書ではpartの要素を の書籍の部分を記述することがあり、もう1つはの要素を使用して の自動車の部分を記述することがあります。 XMLアプリケーションには、文書の の外部にいくつかの追加情報がない限り、 の処理方法を知る方法がありません。

XML名前空間の推奨事項では、このような状況を改善するために、データ型を拡張して要素型名と属性 の名前をURIで修飾できるようにしています。したがって、自動車の部品 を記述する文書は、1つのURIによって修飾されたpartを使用できます。 が書籍の一部を記述している文書は、別のURIによって修飾されたpartを使用できます。 は、ローカル名と適格なURIの組み合わせをユニバーサル という名前で呼び出します。普遍的な名前のURIの役割は、純粋に アプリケーションが名前を認識できるようにすることです。 URIによって識別されるリソース についての保証はありません。 XML名前空間推奨では、 は要素型名と属性名がユニバーサルであることを要求していません ;それらはローカル名でもよい。

<{http://www.cars.com/xml}part/> 

ので<cars:part xmlns:cars="http://www.cars.com/xml"/>マップ

cars(またはsite)を使用する接頭辞はただ便宜のためであるとして。 xmlns:疑似属性は継承可能であるため、祖先が既に接頭辞を定義している場合は、要素に含める必要はありません。

XMLネームスペースの詳細on Wikipediaを参照してください。

0

属性名にコロンが付いています。これはXMLネームスペースとほぼ確実に関連しています。

HTMLページの一番上を見れば、あなたは物事のカップルに気づく必要があります。

第一に、XHTMLとしてそれを特定のdoctypeを持つ必要があります。

第2に、site名前空間のXML名前空間識別子(xmlns)が必要です。これは、これが何であるかを確かめるでしょう。

任意の属性をHTML要素に追加できます。それは非標準であり、場合によっては、ブラウザがそれを気に入らないことがあるかもしれません。たとえば、doctypeがXHTMLの場合、ブラウザは許可された標準属性のみを使用するように強制します。

追加の属性にXML名前空間を使用するのは、この制限を回避する一般的な方法です。実際には、XHTMLでは、あなたがするはずのものです。

将来的には、HTML5に移行するサイトが増え、XHTMLから離れていくにつれて、これは少なくなるはずです。 HTML5では、カスタム属性のより自由な姿勢とリラックスした姿勢に戻って、このすべてを取り除いています。 HTML5仕様では、要素内の任意の属性を使用できます。カスタム属性を使用する場合は、data-の接頭辞を付ける必要があります。これは実際の属性と区別するのに役立ちますが、名前空間についてはこれ以上心配する必要はありません。

+0

ありがとう、これは素晴らしいものです。 – Dave

関連する問題