请选择 进入手机版 | 继续访问电脑版
查看: 7295|回复: 4

MIP 校验规则

[复制链接]
发表于 2016-8-26 17:21:54 | 显示全部楼层 |阅读模式

MIP页面会有严格的规范校验,不允许存在任何校验不通过的问题存在,本文档意在帮助开发者找到校验的内容和规则,快速定位校验不通过的原因

MIP HTML 标签和属性错误1. 缺少强制性标签[td]
提示MANDATORY_TAG_MISSING
错误说明"The mandatory tag '%1' is missing or incorrect."
错误说明强制性标签'xxx'缺失或错误
修复方法添加(或者更正)强制性html标签

在MIP HTML中,强制性标签包括:

[td]
说明备注
<!doctype html>大小写均可
<html mip>强制小写
<head>强制小写
<meta charset="utf-8">utf-8不区分大小写,无单引号或者双引号限制
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">强制小写,无单引号或者双引号限制
< link rel="stylesheet" type="text/css" href="https://mipcache.bdstatic.com/static/mipmain-v0.0.1.css" >强制小写,无单引号或者双引号限制,v0.0.1会根据版本不同而不同
<script src="https://mipcache.bdstatic.com/static/mipmain-v1.0.0.js" ></script >强制小写,无单引号或者双引号限制,v0.0.1会根据版本不同而不同
<body>强制小写
<link rel="standardhtml" href="xxx">强制小写
2. 禁用标签[td]
提示DISALLOWED_TAG
错误说明"The tag '%1' is disallowed."
错误说明禁止使用'xx'标签
修复方法删除禁用标签

目前mip中标签使用规则:

禁止使用标签有:

  • frame
  • frameset
  • object
  • param
  • applet
  • embed
  • form
  • input
  • textarea
  • select
  • option

如果有如下标签需要进行替换

[td]
标签替换后标签
imgmip-img
videomip-video(暂未开放)
audiomip-audio(暂未开放)

其他说明:

  • style:仅允许在head标签中的style标签中使用
  • script:仅允许外链 MIP 所需要的js脚本,或type是application/ld+json的情况
-注意: 1. 可以把img/video/audio/iframe视为禁用标签3. 无效属性值[td]
提示INVALID_ATTR_VALUE
错误说明"The attribute '%1' in tag '%2' is set to the invalid value '%3'."
错误说明标签'xx'中的属性'xx'的属性值'xx'无效
修复方法修改为有效属性值

当html标签有属性值不正确的时候,会报这个错误。mip中需要注意的有:

  • a:href属性不允许使用javascript:协议,
  • a:target属性需要设置为_blank
  • mip-img

    • src:必须是一个url
  • mip-pix

    • src:必须是一个支持https的地址url,
    • 如果不支持https适用百度提供的https代理,url中带t={TIME}&title={TITLE}&host={HOST}&from=baidu"
  • 其他html基本页面属性规范不变

注意
1. MIP HTML中的url强制是https的
2. <a>标签:
- <a href="javascript:xxx()"></a> 错
- <a href="xxx" target="_blank"></a> 对
4. 属性值的无效值[td]
提示INVALID_PROPERTY_VALUE_IN_ATTR_VALUE
错误说明"The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."
错误说明标签'xx'中存在属性'yy','yy'中存在属性'zz',属性'zz'的属性值'aa'无效
修复方法更正无效属性值

可能出现属性值的无效值的情况:

  • <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">

    • width的属性值device-width
    • minimum-scale的属性值1
    • initial-scale的属性值1
  • <script type="application/ld+json"></script>
  • <script type="application/json"></script>

    • 除了外链 MIP 所需 js,script标签的type的属性值应该为application/ld+json

注意: 1. 除上述给出的值外均为无效值5. 缺少强制性属性[td]
提示MANDATORY_ONEOF_ATTR_MISSING
错误说明"The tag '%1' is missing a mandatory attribute - pick one of %2."
错误说明标签'xx'的强制性属性'xx'缺失
修复方法添加正确是属性

mip html中具有强制性属性的标签及其强制性属性有:

  • mip-img
    • src
  • mip-pix
    • src

6. 直接父标签错误[td]
提示WRONG_PARENT_TAG
错误说明"The parent tag of tag '%1' is '%2', but it can only be '%3'."
错误说明标签'a'的直接父标签应该是'b',而不是'c'
修复方法添加所需的父标签

有一些标签有制定的直接父标签,如下示例给出了每个标签必须的直接父标签:

  • !doctype 的直接父标签是 root
  • head 的直接父标签是 html
  • body 的直接父标签是 html
  • link 的直接父标签是 head
  • meta 的直接父标签是 head
  • style mip-custom 的直接父标签是 head
  • style 的直接父标签是 boilerplate
7. 非法父级标签[td]
提示DISALLOWED_TAG_ANCESTOR
错误说明"The tag '%1' may not appear as a descendant of tag '%2'."
错误说明标签'a'不应该是标签'b'的子标签
修复方法删除非法嵌套标签

如:

  • <body>的子标签写在了<head>中
8. 强制父级标签[td]
提示MANDATORY_TAG_ANCESTOR
错误说明"The tag '%1' may only appear as a descendant of tag '%2'."
错误说明M标签'a'只能是标签'b'的子级标签
修复方法删除标签或者给标签添加正确的父级标签
  • img 必须是noscript的子级标签
  • video 必须是noscript的子级标签
  • audio 必须是noscript的子级标签
  • noscript必须是body的子级标签
9. 唯一标签重复[td]
提示DUPLICATE_UNIQUE_TAG
错误说明"The tag '%1' appears more than once in the document."
错误说明标签'xx'只能出现一次
修复方法删除多余的标签

一份html中,有的标签具有唯一性,也就是说只能出现一次,当html中有重复的唯一标签的时候,应该报错。

以下是唯一标签列表:

  • <doctype html>
  • <html mip>
  • <head>
  • <link rel="standardhtml" href=...>
  • <link rel="miphtml" href=...>
  • <meta charset="utf-8">
  • <meta viewport>
  • <style mip-custom>
  • <body>

发表于 2016-9-1 17:23:29 | 显示全部楼层
沙发归我,帖子归你
回复 支持 反对

使用道具 举报

发表于 2016-9-2 11:25:13 | 显示全部楼层
慢慢细读,好好品味
回复 支持 反对

使用道具 举报

发表于 2016-9-2 16:43:07 | 显示全部楼层
来学习学习一下
回复 支持 反对

使用道具 举报

发表于 2016-9-9 10:58:38 | 显示全部楼层
表示很多标签不能用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|Baidu Inc.

GMT+8, 2021-12-8 04:36 , Processed in 0.221560 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2011 Comsenz Inc.

返回顶部