“site”元素属性 - 它是什么?

时间:2011-01-23 16:07:54

标签: html html-lists

我正在查看一些网站代码以供审核,并注意到<ul>中使用的属性“网站”,例如:

<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 个答案:

答案 0 :(得分:1)

这些是自定义属性(可能是动态服务器端代码)添加到<li>元素。

它本身没有做任何事情,就像给元素提供 name id 一样 - 某些其他代码可能使用或未使用的数据

很好的猜测是,该网站有一些客户端脚本,用于标识列表项内嵌套链接的点击,从列表项元素中取出数据并构建正确的URL或将适当的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 + ')');
                            }
*/
                        }
                    });

答案 1 :(得分:0)

根据XML Namespacessite只是一个名称空间前缀:

  

在XML隐含的数据模型中,XML文档包含一个树   元素。每个元素都有一个元素类型名称(有时称为   标签名称)和一组属性;每个属性都包含一个名称   和一个价值。应用程序通常使用元素类型名称   和元素的属性决定如何处理   元件。在没有名称空间的XML 1.0中,元素类型名称和   属性名称是使用受限制的一组非结构化字符串   字符,类似于编程语言中的标识符。我会打电话   这些名称是本地名称。这在分布式中是有问题的   像Web这样的环境。一个XML文档可能使用part个元素   描述书籍的一部分,另一个可能使用part元素来描述   汽车的一部分。 XML应用程序无法知道如何处理   部分元素,除非它有一些外部的附加信息   文件。

     

XML命名空间建议试图通过以下方式改善这种情况   扩展数据模型以允许元素类型名称和属性   要使用URI限定的名称。因此,描述部件的文档   汽车可以使用part限定一个URI;和一份文件   描述部分书籍可以使用part限定另一个URI。生病   将本地名称和合格URI的组合称为通用   名称。 URI在通用名称中的作用纯粹是允许的   应用程序识别名称。没有保证   URI标识的资源。 XML命名空间建议书   不要求元素类型名称和属性名称是通用的   名称;他们也被允许是当地的名字。

所以<cars:part xmlns:cars="http://www.cars.com/xml"/>映射到

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

使用cars(或site)作为前缀只是为了方便起见。由于xmlns:伪属性是可继承的,如果祖先已经定义了前缀,则不需要将其包含在元素中。

详细了解XML命名空间on Wikipedia

答案 2 :(得分:0)

属性名称中的冒号表示它 - 它几乎肯定与XML命名空间有关。

如果您查看HTML页面的顶部,您应该注意到以下几点:

首先,它应该有一个doctype,将其标识为XHTML。

其次,它应该具有site命名空间的XML命名空间标识符(xmlns)。这将确定这是什么。

可以将您喜欢的任何属性添加到HTML元素中。它是非标准的,在某些情况下你可能会发现浏览器不喜欢它 - 例如,如果你的doctype是XHTML,浏览器应该强制你只使用允许的标准属性。

将XML命名空间用于其他属性是解决此限制的常用方法。事实上,在XHTML中,这是你应该做的。

将来,随着越来越多的网站迁移到HTML5并远离XHTML,您应该会看到更少的内容。 HTML5通过回归自由形式和放松的自定义属性态度来消除所有这些。 HTML5规范说您可以在元素中使用您喜欢的任何属性。如果您打算使用自定义属性,那么您应该在它们前面添加data-,这有助于将它们与真实属性区分开来,但您不必再担心命名空间了。