看起来 W3C 的验证器在 HTML5 页面的 prettyPhoto 的 rel 属性上返回了一个验证错误。我该如何解决这个错误?
元素 a 上的属性 rel 的错误值 prettyPhoto[gallery1]:关键字 prettyphoto[gallery1] 未注册。
非常感谢!
看起来 W3C 的验证器在 HTML5 页面的 prettyPhoto 的 rel 属性上返回了一个验证错误。我该如何解决这个错误?
元素 a 上的属性 rel 的错误值 prettyPhoto[gallery1]:关键字 prettyphoto[gallery1] 未注册。
非常感谢!
使用rel
具有非提议(因此不允许)值的属性对 HTML5 标记无效。值prettyPhoto
不在建议值列表中。因此,您可能会面临通过图片库通过验证来获取网页的困难。
一个可能的解决方案:
打开jquery.prettyPhoto.js
(可能是未缩小的)并执行文本编辑器的查找和替换功能:
替换所有出现的attr('rel')
with attr('data-gal')
。
在您的画廊代码中使用:data-gal="prettyPhoto[galname]"
而不是:
rel="prettyPhoto[galname]"
使用以下命令初始化您的 prettyPhoto:
jQuery("a[data-gal^='prettyPhoto']").prettyPhoto();
并且您正以正确的方式使您的代码有效!
您也可以使用此可能的解决方案阅读本文。
您可以使用此处hook
评论中提到的(未记录的)设置。
像这样指定您的链接:<a href="img.jpg" data-gal="prettyPhoto[gal]"></a>
并用于$("a[data-gal^='prettyPhoto'").prettyPhoto({hook: 'data-gal'});
初始化 prettyPhoto。
您还可以通过更新设置以使用类挂钩来修复它:
s = jQuery.extend({
...
hook: "rel",
animation_speed: "fast",
ajaxcallback: function() {},
slideshow: 5e3,
autoplay_slideshow: false,
opacity: .8,
...
到:
s = jQuery.extend({
...
hook: "class",
...