zoukankan      html  css  js  c++  java
  • 一个sohoto广告弹出页提取时间的Js修改过程

    以前页面就有浏览器兼容问题 只能ie浏览 今天有空看了一下代码 确实比较糟糕 代码如下:

     1 <input type="hidden" name="checkInDate" id="checkInDate" />
     2 <SCRIPT LANGUAGE="JavaScript">
     3   var nowtoday = new Date();
     4   var showMonth = nowtoday.getMonth() + 1;
     5   var showDate = "";
     6   if (nowtoday.getMonth() < 9)
     7     showMonth = "0" + showMonth;
     8   if (nowtoday.getDate() < 10)
     9     showDate = "0" + nowtoday.getDate();
    10   else
    11     showDate = nowtoday.getDate();
    12   document.getElementById("checkInDate").value = nowtoday.getYear() + "-"
    13       + showMonth + "-" + showDate;
    14 </SCRIPT>
    15 
    16 <input type="hidden" name="checkOutDate" id="checkOutDate" />
    17 <SCRIPT LANGUAGE="JavaScript">
    18   var nowtoday = new Date();
    19   var nextday = new Date(nowtoday.getTime() + 24 * 3600 * 1000);
    20   var showMonth = nextday.getMonth() + 1;
    21   var showDate = "";
    22   if (nextday.getMonth() < 9)
    23     showMonth = "0" + showMonth;
    24   if (nextday.getDate() < 10)
    25     showDate = "0" + nextday.getDate();
    26   else
    27     showDate = nextday.getDate();
    28   document.getElementById("checkOutDate").value = nextday.getYear() + "-"
    29       + showMonth + "-" + showDate;
    30 </SCRIPT>
    31 
    32 <script type="text/javascript">
    33 function goHotelInformation(hotelId){
    34   var checkInDate=document.getElementById("checkInDate").value;
    35   var checkOutDate=document.getElementById("checkOutDate").value;
    36   var path=location.pathname;
    37     var idx=path.indexOf("/",1);
    38     var ctx=path.substring(0,idx);
    39     window.open(ctx+"/htl/order/HotelInfomation.do?hotelId="+hotelId+"&checkInDate="+checkInDate+"&checkOutDate="+checkOutDate+"&c=1&m=1&L=0");
    40 }
    41 </script>

    我们看到有3个script标签 还有重复的全局变量 

    大致的功能就是取到今天和明天的日期 存储到两个input里 然后在根据两个日期查询酒店

    功能很简单 但是过程很复杂 在这里做一些修改:

    1.浏览器兼容问题是getYear()方法造成的 这里用getFullYear()

    2.没必要把取到的日期存进input在调用input的value 这里写个方法直接调用日期

    一个script 两个方法搞定

    getDay().nowtoday和getDay().nextday还可以供别的页面使用 代替了更多的全局变量

     1 <script type="text/javascript">
     2 function getDay(){
     3   var nowtoday = new Date(),  //今天
     4       nextday = new Date(nowtoday.getTime() + 24 * 3600 * 1000);  //明天
     5 
     6   //月份+1
     7   var showMonth = nowtoday.getMonth() + 1,
     8       nextShowMonth = nextday.getMonth() + 1;
     9 
    10   //日期
    11   var showDate = "",
    12       nextShowDate = "";
    13 
    14   if (nowtoday.getMonth() < 9) showMonth = "0" + showMonth;
    15   if (nextday.getMonth() < 9) nextShowMonth = "0" + nextShowMonth;
    16 
    17   nowtoday.getDate() < 10 ? showDate = "0" + nowtoday.getDate() : showDate = nowtoday.getDate();
    18   nextday.getDate() < 10 ? nextShowDate = "0" + nextday.getDate() : nextShowDate = nextday.getDate();
    19 
    20   return{"nowtoday" : nowtoday.getFullYear() + "-" + showMonth + "-" + showDate , "nextday" : nextday.getFullYear() + "-"+ nextShowMonth + "-" + nextShowDate}
    21 }
    22 
    23 function goHotelInformation(hotelId){
    24     var path = location.pathname,
    25         idx = path.indexOf("/",1),
    26         ctx = path.substring(0,idx);
    27     window.open(ctx+"/htl/order/HotelInfomation.do?hotelId="+ hotelId +"&checkInDate="+ getDay().nowtoday +"&checkOutDate="+ getDay().nextday +"&c=1&m=1&L=0");
    28 }
    29 </script>
  • 相关阅读:
    用Visual Studio2010 编译 C++文件"hello world”
    hdu 1010 Tempter of the Bone(dfs+奇偶剪枝)
    最长子串(动态规划)
    C++中,访问字符串的三种方法
    POJ3260:The Fewest Coins(混合背包)
    如何做好基层技术管理工作?
    UVa10651(记忆化搜索)
    <Win32_5>深入浅出Win32的计时器
    【转载】一步一步写算法(之hash表)
    C可变参数函数 实现
  • 原文地址:https://www.cnblogs.com/dtdxrk/p/2749371.html
Copyright © 2011-2022 走看看