新的属性和标准初心都是美好的,但在普及过程中总是遇到各种奇葩情况,也正是如此,导致很多的开发者并不会优先使用新的属性和标准,
严格说这并不是一篇关于WordPress的文章,仅仅是对HTML5 input新属性值url特性的忽略。
打开客户的一个站点,在后台修改小工具内容的时候发现,填写的内容无法进行保存。百思不得其解,这功能以前是正常的啊,难道数说是WordPress系统更新后,函数钩子什么的有变化?
又仔细测试,一个一个选项进行测,发现有一个名为“标题”的输入框填入内容是可以保存的,这就排除了WordPress更新的问题了。
于是打开主题源码,仔细对比,发现问题了,原来除了“标题”这个input的type设置为默认的text,其他的选项input标签 type属性值竟然设置的都是url。
这个type="url"是HTML5新增的一个属性值“定义用于输入 URL 的字段:”其用处是方便输入url地址,比如iPhone 的 Safari 浏览器会识别 url 输入类型,然后改变触摸屏的键盘来适应它(添加 .com 选项)。
由于这些输入框填写的内容为纯文本,不符合type="url" 必须以http://开头的要求,所以无法进行保存表单
那为什么之前能保存,而现在却无法保存呢?这就要说到浏览器的兼容性问题了,由于浏览器厂家并不一定按照或者还没来得及更新最新的w3c标准,所以有时候会出现该正常的不正常,该不正常的却正常了。
大概是当时该主题开发时,一时图快进行复制粘贴,把输入网址的input里面的type="url" 全部粘贴给了别的input,而当时主流浏览器并不完美支持type="url"的特性,输入纯文本也能进行表单提交;而近两年浏览器进行了标准的更新,所以非http://开头的内容也就无法保存了。
新的属性和标准初心都是美好的,但在普及过程中总是遇到各种奇葩情况,也正是如此,导致很多的开发者并不会优先使用新的属性和标准,也正是如此,HTML5 + CSS3的发展并没有那么理想,期待浏览器厂家能够早日达成一致,让前端开发者少掉些头发。
连微软都启用Chromium内核了,浏览器世界一统天下的那天还会远么?
我碰到的是因为 CDN 缓存造成的!
车长在开发主题了啊~