日历弹出窗口无法在Firefox&铬

时间:2014-02-25 05:50:01

标签: javascript google-chrome firefox calendar

我从互联网上获得了这个弹出日历,我可以使用IE运行它。但是,当我尝试使用FirefoxChrome进行浏览时,弹出日历无效。

这是<head> DL calendar.js中的外部js文件位置:

<script src="../script/calendar.js?d6aa97d33d459ea3670056e737c99a3d" 
     type="text/javascript"></script>

HTML代码:

<input type="text" readonly="readonly" class="blackcopy" name="txtReadyDate" id="txtReadyDate" size="10" maxlength="10" value="">
<input type="button" name="btnStartShipDate" style="width: 30px; height: 19px" value="..."/>

我有这个javascript代码触发按钮中的click事件。它与其余代码位于最后一部分:

<script type="text/javascript">
    var sDetector;
    var sStop;

    calendar.set("btnStartShipDate", "txtReadyDate", "left", 130, -20, document.frmObject.txtReadyDate.value);

    function onMouseMove(val) {
        if (sStop == 'stop') {
            return false;
        }
        sDetector = val;
    }

    function sHide() {
        if (sStop == 'stop') {
            sStop = "";
            calendar.hideCalendar()
        }

        if (sDetector == 'hide') {
            calendar.hideCalendar()
            sDetector = "";
        }
    }
</script>

日历在工作时看起来像这样:

enter image description here

任何与Firefox&amp;有冲突或不兼容的代码Chrome

1 个答案:

答案 0 :(得分:1)

我发现了什么是狼人。在calendar.js代码中的某些位置,您会看到如下代码:

var input = document.getElementById(input_id);

实际上是指这个输入:

<input type="button" name="btnStartShipDate" style="width: 30px; height: 19px" value="..."/>

由于getElementById引用id,您需要将id属性设置为:

<input type="button" id="btnStartShipDate" name="btnStartShipDate" style="width: 30px; height: 19px" value="..."/>

问题是,即使IE browse只有input属性,name也能以某种方式解决问题。但对于FirefoxChrome的情况,getElementById在控件中存在id属性后才会起作用。