`
han2000lei
  • 浏览: 276099 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

单击其它区域关闭日历控件(兼容firfox与IE)

阅读更多
  这两天使用javascript的一个日历控件CbsCalendar.js,有一个缺点就是不能使用单击某一区域关闭。郁闷中。于是就改了一下。下面是加的代码,兼容IE与firfox
主要修改如下:
1、CbsCalendar.js右上角关闭按钮是个“X”,而不是汉字,这里改成了“关闭”。
2、以前单击“X”时,是选文体的那种符号,而不是小手(链接)的形式,非常别扭,现在改成了小手的形式。(在代码中本来设计者设计的是小手的形式,但由于多写了一个字母导致了小手没有出现)
3、修改了单击外部不能关闭控件的问题(以前只能单击关闭按钮才能关闭控件,现在单击文本中的其它区域就可以关闭控件了)
//*****************单击其它地方关掉
  var active = false;
  var C_div = document.getElementById(this._id+"divCalendar").getElementsByTagName("div");
    var flag = false;
    if(window.addEventListener){//判断浏览器,flag=true为firfox,false为IE
        flag = true;
    }
    for (var i=0;i<C_div.length;i++){
        if(flag){
            C_div[i].addEventListener("mouseover",function(){active = true;},false);
            C_div[i].addEventListener("mouseout",function(){active = false;},false);
        }else{
            C_div[i].attachEvent("onmouseover",function(){active = true;});
            C_div[i].attachEvent("onmouseout",function(){active = false;});
        }
    }
    if(flag){
        document.addEventListener("click",hide,false);
    }else{
        document.attachEvent("onclick",hide);
    }
  function hide(e){
      var evg=e.srcElement?e.srcElement:e.target;//srcElement适应于IE,target适应于firfox
	if (active == false &&document.getElementById(div._id + "divCalendar").style.display!="none" && evg.getAttribute("type")!="text")//这个地方需要注意一下,如果程序员在使用<input >时,如果不加type属性,在firfox会出问题,因为如果没有type属性,evg.getAttribute("type")在firfox中为null,有哪位高手可以解决一下这个问题?
	  document.getElementById(div._id + "divCalendar").style.display = "none";
  }
//*****************结束

有两个问题:
一是我没有考虑旁边按钮的用法,只考虑了在文本框中单击时的用法。
二是ie与firfox的问题。本日历控件已经完全兼容这两种浏览器。但要注意:程序员使用文本框时,input的标记中必须有type属性,(虽然一般程序员都会写上,但不敢保重一些懒人的做法)两种浏览器如果不写type="text",都会默认为"text",在前端显示为文本框,但在取type这个属性的值时,IE中可以取到,firfox中是取不到的。为了保重效果,程序员一定要在input中使用type属性,我想这个要求不过分。
还有一个问题没有解决,就是在使用ie6时,控件被select覆盖。
本js文件在附件中,用法为<input type="text" id="cal" onclick="new CbsCalendar(this.id)" />
2
0
分享到:
评论
2 楼 mewleo 2009-06-19  


1 楼 mewleo 2009-06-19  
han2000lei 写道
还有一个问题没有解决,就是在使用ie6时,控件被select覆盖。


这是一个很苦恼的问题,你解决不了可以理解,因为我们都是程序员。

我是请教了一个美工之后才解决这个问题的。

他是html的docment声明版本引起的,明天一起研究一下。

相关推荐

    javascript表格可调整列宽(兼容firfox/IE)

    本demo使用jQuery包,实现表格列宽可拖拽功能,并实现页面reset时的重新布局。使用jQuery,方便函数的调用,给要处理的表格添加id 后,直接调用$("#id").movedTh()即可方便实现,修改了firfox的兼容性。

    HttpWatch(支持firfox、IE)

    [1]只需要选择相应的网站,软件就可以对网站与IE之间的需求回复的通讯情况进行分析并在同一界面显示其相应日志记录。每一个HTTP记录都可以详细的分析其 Cookies、消息头、字符查询等信息。支持HTTPS及分析报告输出为...

    兼容ie,firfox,chrome的页面广告随机飘动效果

    这个项目名为"兼容ie, firfox, chrome的页面广告随机飘动效果",旨在实现一个能在主流浏览器(Internet Explorer, Firefox, Chrome)上运行的广告飘动特效,确保跨浏览器的兼容性。这种效果通常通过JavaScript库,...

    树形菜单javascript(兼容IE,Firfox,刷新记忆)

    它不仅能在Internet Explorer(IE)上运行,还支持Firefox。这在Web开发中是非常重要的,因为用户可能使用各种不同的浏览器来访问网站,所以确保代码在主流浏览器上的兼容性是至关重要的。开发者可能采用了条件注释...

    firfox和ie6的js执行效率比较

    标题中的“firfox”应该是“Firefox”,这是一款由Mozilla开发的开源网络浏览器,而“ie6”指的是微软的Internet Explorer 6,这是一个较旧版本的IE浏览器。本话题主要探讨的是JavaScript在Firefox和IE6这两款浏览器...

    一个兼容IE、Chrome和Firfox的HTML固定表头例子

    这个示例兼容了三种主流浏览器:Internet Explorer(IE)、Google Chrome和Mozilla Firefox,这涵盖了大部分用户的浏览器环境。 在描述中提到的“博文链接:https://sheng.iteye.com/blog/1199433”,这是一个IT...

    一款轻量、无依赖的 相同 name 的表单验证,动态验证,兼容 chrome 、firfox 、IE9 +的JavaScript

    本文将深入探讨一个针对Web应用开发的轻量级JavaScript验证组件,该组件专为处理具有相同name属性的表单字段进行动态验证,并且兼容主流浏览器,包括Chrome、Firefox以及IE9及以上版本。 表单验证是Web应用中不可或...

    前端设计IE6IE7IE8IE9FF问题汇总IE和FirFox兼容问题[参照].pdf

    在前端开发过程中,确保网页在不同的浏览器间具有良好的兼容性是一项重要的任务。本文主要讨论了在Internet Explorer(IE)6、7、8、9以及Firefox之间存在的若干常见问题及其解决方案。以下是一些关键知识点的详细...

    firfox firfox firfox firfox

    firfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfoxfirfox

    firfox最最好用的插件

    Coral IE Tab解决了与IE兼容性的问题,Thunder Extension 3.6使得Firefox用户可以充分利用迅雷的下载优势,而Web Developer则为开发者提供了便利的工具。它们都是Firefox生态中不可或缺的一部分,对于不同类型的用户...

    日期控件,javaScript,java,script,js,日期,日历

    1. 这个日期控件在IE上可以运行,在Firfox与google 浏览器上不可以运行。 2. 只要把test.html,tenkey.js,tenkey.css,DateBox.html放到同一个目录上便可以运行。

    Flex调试工具 IE Firfox

    - **Firefox的Flash Player设置**:与IE类似,Firefox也需要安装Flash Player Debugger版本。注意保持Firefox的更新,因为某些版本可能不支持最新的Flash Player。 - **Firebug集成**:Firefox的Firebug是一款强大...

    判断当前使用的浏览器版本ie、firfox等

    本文将详细讲解如何判断当前使用的浏览器是IE(Internet Explorer)、Firefox或其他,并关注如何检测它们的版本。 首先,我们需要理解浏览器检测的基本原理。这通常通过JavaScript的`navigator`对象来实现,该对象...

    selenium for firfox安装文件

    selenium for firfox安装文件

    火狐浏览器兼容IE加载64位COM组件的方法以及所需资源

    然而,由于安全性考虑,火狐已经逐步淘汰了NPAPI,所以你需要找到一个替代方案,如"ActiveX Control Container for Firefox",这是一个可以承载并执行ActiveX控件的插件。 3. **安装和配置插件**:下载并安装所选...

    firfox and firedebug

    标题中的"Firfox and Firebug"指的是Mozilla Firefox浏览器与Firebug这款强大的JavaScript和网页开发调试工具的组合。Firefox是一款开源的网络浏览器,以其高度可定制性、安全性以及对Web标准的良好支持而广受开发者...

    C# Firfox geckofx-33.0

    标签中提到的"geckofx"是该项目的核心库,"IE"代表Internet Explorer,可能是因为Geckofx与IE的WebBrowser控件相比,提供了更现代和标准的Web渲染能力。而"浏览器"标签则强调了这个库的主要应用场景——构建带有内置...

    jQuery表格列宽可拖拽改变且兼容firfox

    使用jQuery,方便函数的调用,给要处理的表格添加id 后,直接调用$(“#id”).movedTh()即可方便实现,修改了firfox的兼容性。 代码如下: &lt;html&gt; &lt;head&gt; &lt;meta ...

Global site tag (gtag.js) - Google Analytics