我正在编写一个jQuery插件,它基本上运行在一个<div>
上。我正在考虑在<meta>
内使用特定于插件的<div>
代码为其提供配置值。
如果我在文档正文中放置<meta>
标记,HTML5是否有效,并且在解析页面时旧浏览器不会将所有<meta>
标记移动到头部是否相当安全?
data-
属性是一个很好的解决方案,但我计划很多,所以我会像<meta>
那样整洁。
答案 0 :(得分:3)
<meta>
元素仅在HTML5文档的<head>
中有效(Metadata content model仅在<head>
中可接受)。您应该使用HTML5 jQuery插件传递配置数据的是使用data-*
attributes,可以使用.data()
从jQuery访问。
所以你的标记可能是:
<div class="widget" data-foo="bar"><div>
你的jQuery将是:
$('.widget').widget({...options...});
这是一个使用的函数:
$.fn.widget = function (...) {
return this.each(function () {
...code...
options.foo = $(this).data('foo'); //gets the value 'bar'
...more code...
});
};
回复OP评论:
对于您使用的data-*
个属性没有限制,如果它只是用于格式化,则将它们分成多行。空格在HTML中压缩:
<div class="widget"
data-foo="bar"
data-fizz="buzz"
data-lorem="ipsum"
...
data-xyz="abc">
...contents...
</div>
如果您有充分的理由将数据与<div>
分开,那么您可以将<input>
字段与type="hidden"
一起使用我通常会在拥有需要的交互式表单窗口小部件时使用此字段提交表格。
答案 1 :(得分:1)
meta不是要走的路,数据属性怎么样
答案 2 :(得分:1)
除了标题之外,您不能在文档的任何部分放置<meta>
标记。
您可以使用<meta>
标记内的标记将该标记与您的插件相关联。 <meta>
标签非常灵活。
答案 3 :(得分:1)
META元素可用于识别文档的属性(例如,作者,到期日期,关键词列表等),并为这些属性赋值。该规范没有定义规范的属性集。
每个META元素指定一个属性/值对。 name属性标识属性,content属性指定属性的值。
例如,以下声明为Author属性设置了一个值:
<META name="Author" content="Dave Raggett">
lang属性可以与META一起使用,以指定content属性值的语言。这使语音合成器能够应用与语言相关的发音规则。
在此示例中,作者的姓名被声明为法语:
<META name="Author" lang="fr" content="Arnaud Le Hors">
请注意。 META元素是用于指定元数据的通用机制。但是,某些HTML元素和属性已经处理了某些元数据,作者可能会使用它来代替META来指定这些部分:TITLE元素,ADDRESS元素,INS和DEL元素,title属性和cite属性
请注意。当META元素指定的属性采用URI值时,某些作者更喜欢通过LINK元素指定元数据。因此,以下元数据声明:
<META name="DC.identifier"
content="http://www.ietf.org/rfc/rfc1866.txt">
也可以写成:
<LINK rel="DC.identifier" href="content="http://www.ietf.org/rfc/rfc1866.txt">
更多/来源:
http://www.w3.org/TR/html4/appendix/notes.html#h-B.4和 http://www.w3.org/TR/html4/struct/global.html#h-7.4.4.2