最近项目写了一些js,水平有待提高

代码如下:

function ResumeError() {
return true;
}
window.onerror = ResumeError;

function showdd(obj){
var dds = document.getElementById(obj).getElementsByTagName("dd");
var len = dds.length;
if(dds[0].style.display == "none"){
//该操作为展开菜单,需要判断cookie中是否有该项
//1、有,删除
//2、无,不执行操作
changeshowmenu(obj);
for(var i = 0; i < len;i++){
dds[i].style.display = "";
}
}else{
//该操作为隐藏菜单,需要判断cookie中是否有该项:
//1、有,不执行操作
//2、无,则要在末尾添加进去
changehidemenu(obj);
for(var i = 0; i < len;i++){
dds[i].style.display = "none";
}
}
}

function changeshowmenu(obj){
var temp = getcookie("openid");
if(temp.indexOf(obj) != "-1"){
temp = temp.replace(obj + ",","")
addcookie("openid",temp,24);
}
}

function changehidemenu(obj){
var temp = getcookie("openid");
if(temp.indexOf(obj) == "-1"){
addcookie("openid",temp+obj+",",24);
}
}

function getcookie(sName) {//取得cookie
var aCookie = document.cookie.split("; ");
for (var j=0; j < aCookie.length; j++){
var aCrumb = aCookie[j].split("=");
if (sName == aCrumb[0])
return aCrumb[1];
}
return null;
}

function addcookie(objName,objValue,objHours){//添加cookie
var str = objName + "=" + objValue;
if(objHours > 0){//为0时不设定过期时间,浏览器关闭时cookie自动消失
var date = new Date();
var ms = objHours*3600*1000;
date.setTime(date.getTime() + ms);
str += "; expires=" + date.toGMTString();
}
document.cookie = str;
}

//根据一个以逗号分开的字符串,初始化菜单哪些需要隐藏
function initmenu(obj){
var arrmenu = obj.split(",");
for(var i = 0; i < arrmenu.length;i++){
var dds = document.getElementById(arrmenu[i]).getElementsByTagName("dd");
for(var j = 0;j < dds.length;j++){
dds[j].style.display = "none";
}
}
}

function $(obj){
return document.getElementById(obj);
}

function delIt(){
var cbxBool = 0;
for(var i = 0;i < cbxArray.length;i++){
var obj = $(cbxArray[i]);
if(obj.checked == true){
cbxBool = 1;
break;
}
}

if(cbxBool == 1){
var result = confirm("操作不可以恢复,确定当前操作吗?");
if(result){
return true;
}
}else{
alert("您还没有选中项");
return false;
}
return false;

}
window.onload = function(){
var lendl = document.getElementById("globalLeft").getElementsByTagName("dl").length;
if(getcookie("openid") == null){
addcookie("openid","dl_c,dl_d,dl_e,dl_f,dl_g,dl_h,dl_i,dl_j,",24);
}
initmenu(getcookie("openid"));

var otable = document.getElementById("table");
var trs = otable.getElementsByTagName("tr");
for(var i = 0;i < trs.length;i++){
trs[i].onmouseover = function(){
this.style.backgroundColor = "#F7F7F7";
}
trs[i].onmouseout = function(){
this.style.backgroundColor = "#FFFFFF";
}
}
}

(0)

相关推荐

  • 最近项目写了一些js,水平有待提高

    复制代码 代码如下: function ResumeError() { return true; } window.onerror = ResumeError; function showdd(obj){ var dds = document.getElementById(obj).getElementsByTagName("dd"); var len = dds.length; if(dds[0].style.display == "none"){ //该操作为展

  • 在Vue项目中使用d3.js的实例代码

    之前写一个 Demo里面 有些东西要使用d3实现一些效果 但是在很多论坛找资源都找不到可以在Vue里面使用D3.js的方法,npm 上面的D3相对来说 可以说是很不人性化了 完全没有说 在webpack上怎么使用D3.js 最后折腾很久 看到某位外国大佬 看他的案例 成功的实现了在Vue项目里面实现D3的使用 首先安装 npm install d3 --save-dev 以防万一,然后看package.json 安装完成 在我们开始之前,让我们渲染一个Vue组件,它使用常规的D3 DOM操作呈现

  • vue项目中在外部js文件中直接调用vue实例的方法比如说this

    一般我们都是在main.js中引入vue,然后在vue文件中直接使用this(this指向的是vue实例),但是在实际开发中,我们往往会引入外部的js文件使用this,这个this就会指向window,并不是我们期待的vue实例,那么就需要重新引入vue文件(import Vue from 'vue'),这样很麻烦.在目前项目中我使用的方法是mian.js导出vue实例,然后在需要使用的js中引入. 步骤一:main.js导出vue实例 var vue = new Vue({ el: '#app

  • vue项目实现减少app.js和vender.js的体积操作

    配置webpack中externals来减少打包后vendor.js的体积 在日常的项目开发中,我们会用到各种第三方库来提高效率,但随之带来的问题就是打包后的vendor.js体积过大,导致加载时空白页时间过长,给用户的体验太差.为此我们需要减少vendor.js的体积,从本质上来解决这种问题. webpack的外部扩展(externals)可以有效的解决. externals 配置选项提供了「从输出的 bundle 中排除依赖」的方法.相反,所创建的 bundle 依赖于那些存在于用户环境(c

  • 在vue项目中使用Nprogress.js进度条的方法

    NProgress.js提供页面加载进度条效果,当页面打开加载时,在页面顶部会出现进度条加载动画.NProgress.js是轻量级的进度条组件,使用简便,可以很方便集成到单页面应用中. Ajaxyy应用程序的细长进度条.灵感来自Google,YouTube和Medium. 在vue中使用nprogress.js 安装 $ bower install --save nprogress $ npm install --save nprogress 在项目中引入 在main.js中引入要使用的npro

  • 在Vue项目中使用jsencrypt.js对数据进行加密传输的方法

    项目需求中需要对用户登录时的密码进行加密,在网上查询些许文章后,最终与后端协商使用jsencrypt.js. jsencrypt.js的github地址: https://github.com/travist/js... 使用yarn安装至Vue项目 yarn add jsencrypt --dep 或者使用npm npm install jsencrypt --dep 引入jsencrypt import { JSEncrypt } from 'jsencrypt' 可封装为全局混合,便于调用

  • vue项目中 使用 pako.js 解密 gzip加密字符串的代码详解

    前言 今天跟后台对接一个接口,接受到一个加密的值,说是通过gzip加密过的,然后就蒙蔽了, 赶紧上百度找了一下资料,通过一篇文章(原文在底部)发现有个js库可以解密,就下载轻松解密了 实现代码 poko.js可至Github下载 https://github.com/nodeca/pako or npm install pako import pako from 'pako' // 一个是加密:window.btoa(),一个是解密:window.atob() function decode(e

  • nginx 部署 vue 项目找不到js css文件的解决方法

    很多时候 npm run build 之后, index.html 文件中webpack 自动插入的 js 文件 css 文件的相对目录总是不对,发布到服务器上之后,nginx 找不到文件. vue-cli@3 在 vue-cli@3 中你需要为你 webpack 插入到 index.html 中 的所有文件添加一个 baseUrl. 你需要在项目的根目录新建一个 vue.config.js, 添加如下内容: ... module.exports = { baseUrl: isProd ? '/

  • Vue项目中使用mock.js的完整步骤

    在Vue项目中使用mock.js 开发工具选择:Vscode 1. 使用命令行创建vue项目(手动选择Babel,Router,Vuex) 2. 导入element-ui(为了显示效果好一点),命令行输入 npm i element-ui -S 3.在main.js中进行引用 import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css';//样式文件一定要引入 Vue.use(ElementUI)

  • 详解本地Vue项目请求本地Node.js服务器的配置方法

    目录 1.使用vue-cli脚手架搭建vue项目 2.使用koa搭建node后端 3.Vue项目中添加后端请求 参考资料: 前言:本文只针对自己需要本地模拟接口于是搭建一个本地node服务器供自己测试使用,仅作自己从头到尾搭建项目的记录 1.使用vue-cli脚手架搭建vue项目 1.在桌面运行 cmd,使用命令vue create demo创建一个vue项目demo,插件依赖等使用默认配置2.项目创建成功之后,使用命令 cd demo,进入 demo 文件夹,然后使用命令 npm run se

随机推荐