我目前正在撰写一个必须与所有浏览器兼容的网站,包括IE回到第6版。
我特别想知道这两个事件的兼容性问题:
我使用带有<input>
的{{1}}标记。
搜索发现混合响应和列表不完整。
具体来说,问题是:
任何帮助非常感谢:)
答案 0 :(得分:9)
如果您只在文本框中使用它们,那么所有浏览器都应该非常适合支持这些事件。如果您查看QuirksMode event compatibility tables,您会看到IE在单选按钮和复选框中的更改事件存在一些问题。
如果你不熟悉浏览器中的JavaScript事件,你会发现事件模型很乱,因为IE决定采用与标准不同的方式。要解决此问题,you should be using a JavaScript framework,例如jQuery,YUI,Dojo,MooTools,ExtJS或Closure。这些框架可以消除差异,因此您(几乎)永远不必处理差异和差异。不同浏览器中的错误。有a great article on CodingHorror解释为什么您应该考虑使用JavaScript框架,如果您计划在您的网站中使用JavaScript,如果您对为什么应该使用JavaScript框架感到好奇
此外,如果您完全不熟悉浏览器事件,请务必了解the difference between onchange and onblur。
答案 1 :(得分:1)
我相信这两个特定事件不会比Internet Explorer中的所有事件加上常见的奇怪怪癖(例如this one)。
事件处理和许多其他问题的一般解决方案是使用一个Javascript框架,其开发人员已经放弃了自己的血液来保存你的所有IE,以及所有IE(和其他一些)奇怪的内容,例如dojo 。正如Dojo人在该页面上所说:
“支持”这个词意味着什么 非常具体的Dojo和Dijit,in 说Dojo Core和Dijit 支持浏览器意味着100% 可用的功能有效, 处理可访问性 正确的,那一切 国际化和本地化 得到支持。这是非常高 吧,这也意味着我们 可能不会说浏览器喜欢 对于Dijit来说,Opera是“支持”的 它很可能会全部奏效 那里也有,但可能有一些 我们无法工作的警告 周围(如可访问性挂钩) 戏)。
他们声称在这个非常高的级别“支持”的浏览器是(从Dojo 1.3.2开始)IE 6到8,Safari 3.1到4,Firefox 2到3.5,Chrome 1到2(核心功能) ,包括事件处理,也适用于Opera,Konqueror,FF 1.5,......)。
答案 2 :(得分:0)
如果你使用jQuery,试试这个:
$('input.text').click(function () {
if (this.value == this.defaultValue) {
this.value = '';
}
});
$('input.text').blur(function () {
if (this.value === '') {
this.value = this.defaultValue;
}
});
$("input:text")
如果您想定位所有文字输入字段。