【问题标题】:html onchange/onblur compatibilityhtml onchange/onblur 兼容性
【发布时间】:2009-10-07 03:47:04
【问题描述】:

我目前正在编写一个网站,该网站必须兼容所有浏览器,包括 IE 回到版本 6。

我特别想知道这两个事件的兼容性问题: 我将它们与<input> 标签和type='text' 一起使用。

  • 模糊处理
  • OnChange

搜索发现混合响应和不完整的列表。

具体来说,问题是:

  • 上述两个事件是否存在已知问题(可以扩展为其他 HTML 事件)?
  • 如果是这样,可以使用哪些方法来解决这些问题?

非常感谢任何帮助:)

【问题讨论】:

    标签: html compatibility onchange onblur


    【解决方案1】:

    如果您只在文本框中使用这些事件,所有浏览器都应该相当不错地支持它们。如果您查看QuirksMode event compatibility tables,您会发现 IE 在单选按钮和复选框的更改事件方面存在一些问题。

    如果您对浏览器中的 JavaScript 事件不是很熟悉,您会发现事件模型是一团糟,这要归功于 IE 决定以与标准不同的方式做事。为了克服这个问题,you should be using a JavaScript framework 喜欢 jQueryYUIDojoMooToolsExtJSClosure。这些框架消除了差异,因此您(几乎)永远不必处理不同浏览器中的差异和错误。 a great article on CodingHorror 解释了为什么你应该考虑使用 JavaScript 框架,如果你打算在你的网站中使用 JavaScript,如果你对 为什么你应该使用 JavaScript 框架感到好奇,你应该阅读。

    另外,如果您完全不熟悉浏览器事件,请确保您了解the difference between onchange and onblur

    【讨论】:

      【解决方案2】:

      我相信这两个特定事件不会比 Internet Explorer 中的所有事件加上常见的奇怪怪癖(例如 this one)有更多问题。

      事件处理和许多其他问题的一般解决方案是使用 Javascript 框架,它的开发人员为拯救你的血液而流血,掩盖了所有 IE(和其他一些)怪异现象,例如 dojo。正如 Dojo 人在该页面上所说:

      “支持”这个词意味着什么 对于 Dojo 和 Dijit 来说非常具体,在 说 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、...)。

      【讨论】:

        【解决方案3】:

        如果你使用 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"),如果您想定位所有文本输入字段。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-04-16
          • 1970-01-01
          • 1970-01-01
          • 2023-03-04
          • 2020-08-30
          • 2011-04-29
          • 1970-01-01
          相关资源
          最近更新 更多