当前位置: 首页 > news >正文

免费建站网站一级大录像不卡在线看纹理网站推荐

免费建站网站一级大录像不卡在线看,纹理网站推荐,推广策略和推广方法,番禺网站建设根据公司的规定#xff0c;每月八小时#xff0c;弹性工作制。所以大家平时来的不太准时#xff0c;如果有事#xff0c;下班也就早些回去了。所以一个月下来工作时间可能不够#xff0c;但是公司的考勤日历是这样的#xff1a; 除了请假和法定节假日外#xff0c;其他样…  根据公司的规定每月八小时弹性工作制。所以大家平时来的不太准时如果有事下班也就早些回去了。所以一个月下来工作时间可能不够但是公司的考勤日历是这样的 除了请假和法定节假日外其他样式显示都是一样的每次都要一个个估算这个月的大概工作时间十分不方便。后来看到公司有人在用一个Chrome扩展程序可以计算出一个月的工作时间但是我觉得还是没有看到我想看的东西因为除了每个月的累计工作时间外我还想看到平均每天工作时长、每一天的工作时长、20点以后的天数20点以后下班的可以报销晚饭的哈哈……、22点以后下班的天数报销打车费……所以我决定还是自己写一个吧。 第一步我先写了一个JS方法然后通过F12开发者工具的Console复制粘贴运行。 公司用的OA系统没有引用jQuery库所以我刚开始的想法是想动态引用jQuery类库如下 var script document.createElement(script); script.src http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js; document.body.appendChild(script); 但是遇到了问题一个是$被占用二是HR系统采用iframe嵌套并且还有frame嵌套结构很复杂。而console运行的代码是在最顶层运行的后期的chrome扩展插件是运行在内部frame中的可能这里的JS后面不能直接使用。虽然$被占用的问题可以通过jQuery.noConflict();来解决但是jquery库和原来系统的JS库存在调用顺序的问题而且在内部的frame中死活访问不到jQuery这个对象。最后我决定放弃使用jQuery该用原生JavaScript。 JS代码如下 /* * author:清明雨上 * date:2016-1-5 */ var mydate function() { //time2-time1 function getTimeDiff(time1, time2) { var st1 time1.split(:); var st2 time2.split(:); return ((st2[0] | 0) * 60 (st2[1] | 0)) - ((st1[0] | 0) * 60 (st1[1] | 0) * 1); } var timeList []; var mymain window.parent.frames[Main].document.getElementById(ctl00_cphMain_CalendarAC); var listAC mymain.getElementsByClassName(listAC); for (var i 0; i listAC.length; i ) { var item listAC[i]; var t {}; t.timeSpan item.getElementsByTagName(td)[1].innerText; t.remark item.getElementsByTagName(td)[2].innerText; timeList.push(t); }; var totalMin 0; var noworkDays 0; //请假天数 var workDays 0; //实际上班天数 var workHourEveryday []; var no8h 0; //未满8小时天数 var over20 0; //20点以后下班天数 var over21 0; //21点以后下班天数 var over22 0; //22点以后下班天数 var over23 0; //23点以后下班天数 for (var i 0; i timeList.length; i ) { var time timeList[i]; if (time.remark ! 无) { noworkDays ; continue; } if (time.timeSpan 无刷卡记录) continue; var splitTime time.timeSpan.split(~); if (splitTime.length 2) { //正常上下班 var begin splitTime[0]; var end splitTime[1]; var thisMin getTimeDiff(begin, end); totalMin thisMin; workDays ; if (thisMin / 60 8) { workHourEveryday.push(font colorredb stylefont-size:15px parseInt(thisMin / 60) /b. thisMin % 60 /font); no8h ; } else { workHourEveryday.push(b stylefont-size:15px parseInt(thisMin / 60) /b. thisMin % 60); var offworkHour parseInt(end.split(:)[0]); if (offworkHour 20) { over20 ; } if (offworkHour 21) { over21 ; } if (offworkHour 22) { over22 ; } if (offworkHour 23) { over23 ; } } } }; var myHour parseInt(totalMin / 60); //本月工作累计小时数 var otherMin totalMin % 60; //本月工作出小时部分外的分钟数 var avgHourOneDay workDays 0 ? 0.0 : b stylefont-size:15px (parseInt(myHour / workDays) /b. (parseInt((myHour % workDays) * 60 / workDays) parseInt(otherMin / workDays))); //平均每天工作时长 var html div classalectest stylebackground: #cbebfb;padding:7px;\ div出勤时间b stylefont-size:15px;color:red myHour /b小时font colorred otherMin /font分钟平均font colorred avgHourOneDay /font小时/天/div\ div参考时间 workDays * 8 小时【 workDays 天】除去请假和节假日实际有打卡记录的天数/div\ div请假/外出天数 noworkDays 天/div\ div每天工作时间(格式小时.分钟) workHourEveryday.join() /div\ div未满8小时天数b stylefont-size:15px no8h /b天/div\ div20点以后下班天数b stylefont-size:15px over20 /b天/div\ div21点以后下班天数b stylefont-size:15px over21 /b天/div\ div22点以后下班天数b stylefont-size:15px over22 /b天/div\ div23点以后下班天数b stylefont-size:15px over23 /b天/div\ /div var alectest mymain.parentNode.getElementsByClassName(alectest); if (alectest.length 0) { // mymain.parentNode.removeChild(alectest[0]); alectest[0].innerHTML html; } else { var div document.createElement(div); div.innerHTML html; var fragement document.createDocumentFragment(); while (div.childNodes[0]) { fragement.appendChild(div.childNodes[0]); } mymain.parentNode.insertBefore(fragement, mymain); } bindBtnClick(); } var bindBtnClick function() { window.parent.frames[Main].document.getElementById(ctl00_cphTop_BtnQuery).addEventListener(click, function() { var inter setInterval(function() { if (window.parent.frames[Main].document.getElementById(ctl00_cphMain_CalendarAC) window.parent.frames[Main].document.getElementById(ctl00_UpMaster).style.display none) { clearInterval(inter); mydate(); } }, 500); }, false); } bindBtnClick(); View Code代码说明监听考勤查询按钮的click事件考勤信息加载完成后执行我的JS方法。 第二步开发Chrome扩展程序 参考资料http://open.chrome.360.cn/extension_dev/content_scripts.html 查询manifest.json的content_scripts节点的各个属性说明 manifest.json是必须的最终内容如下 { manifest_version:2, name: Extension Name, version: 0.1.0, description: 插件描述, icons: { 48: icon.png }, content_scripts: [ { all_frames : true, matches: [http://*], js: [haha.js], run_at: document_end } ] } View Code另外在同目录下放入一个icon.png图片至此所有文件都准备完毕目录如下 打开Chrome的扩展程序列表的开发者模式》大包扩展程序...在扩展程序根目录中输入上面三个文件所在的父目录。 点击【打包扩展程序】即可。 说明如果点击该按钮长时间未能反映可以能是你的chrome不允许第三方非认证的扩展程序解决方案是点击chrome快捷方式右键》属性》目标输入框后面追加“ enable-easy-off-store-extension-install”注意前面的空格。 然后再尝试以上步骤就行了。 第三步防止Chrome屏蔽非官方扩展程序 设置 Chrome会提示暂停非官方扩展程序每次启动就有提示很烦人。 查找资料http://www.itechzero.com/prevent-chrome-shielding-unofficial-extensions-tutorial.html 防止Chrome屏蔽非官方扩展程序教程 根据以上资料说明可以轻松解决这个问题。 至此该可扩展程序全部完成结果图如下 更多专业前端知识请上 【猿2048】www.mk2048.com
http://www.pierceye.com/news/989670/

相关文章:

  • 怎么查看网站的建设时间提高企业网站的访问率
  • 宁德做网站的公司长沙网站建设 芙蓉区
  • 兴平市住房和城乡建设局门户网站会员管理网站建设
  • 做seo的网站是怎么样的上饶小程序开发公司
  • 网站硬件需求建网站网站
  • 网站主机域名合肥室内装修设计培训
  • 上海网站优化网站对企业的作用
  • 哪些园林网站可以做外链网址怎么注册
  • 做网站域名服务器wordpress 互动性
  • 微信网站欣赏好看的旅游网站模版
  • 甘肃省嘉峪关建设局网站wordpress android下载
  • wordpress 调用discuzseo营销是什么
  • 广州市律师网站建设怎么样建行网站会员注册用户名
  • 免费建站哪个好asp网站没有数据库
  • 文化馆网站建设方案建设中网站首页
  • 模板网站是什么郑州网站seo公司
  • 阿里云服务器网站开发正规品牌网站设计品牌
  • 网站突然搜不到了我是做装修什么网站可以
  • 外国网站在内地做seo食品网站模板
  • 网站推广名片wordpress 数据库查询数据库
  • 自己搭建的ftp怎么做网站线上推广员
  • 网站开发设计大赛北京seo招聘信息
  • 营销型网站是什么云南网站设计流程
  • 怎么做网站效果图广西网站建设运营费用
  • 怎么自己开发app软件无锡网站推广优化公司哪家好
  • 做网站原型的简单工具深圳网站建设美橙互联
  • 免费关键词挖掘网站wordpress发多少文章卡
  • html网站建设的步骤wordpress 自定义变量
  • 网站建设的意见建站公司有哪些服务
  • 广东美景园林建设有限公司网站陕西网络公司网站建设