这里是张益达同学工作过程中遇到的一些问题和解决办法的收集-麻雀虽小,五脏俱全
  • checkbox disabled属性表单提交不成功,既设置默认值也无效

    • [x] 解决办法创建一个隐藏<input type="text" hidden value="你要设置的值">
  • IE浏览器

    • [x] 不支持记录用户名和密码,需要自己手动修改设置 IE记住用户名
  • IE浏览器不支持es6语法

    • 使用转换工具babel
    • 我们把browser.min.js引入(文件位置的路径要确保正确)。并且设置第二个script标签的type为”text/babel”。
  • IE浏览器不能访问localhost

    • [x] IE -Internet设置-连接-局域网设置-代理服务器后面的 高级 选项 弹出的页面下方有个不使用代理服务器链接的地方 输入 *localhost 然后再试试
  • linux下退出python命令

    • [x] ctrl+z
  • python不识别tab target

    • [x] 需要用空格代替或者编辑器设定一个tab相当于多少个空格
  • [ ] - 无法获取未定义或 null 引用的属性“1”
  • 数组去重

    • 最基本的去重方法
    思路:定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中。
    function unique(arr){
      var res = [arr[0]];
      for(var i=1;i<arr.length;i++){
        var repeat = false;
        for(var j=0;j<res.length;j++){
          if(arr[i] == res[j]){
            repeat = true;
            break;
          }
        }
        if(!repeat){
          res.push(arr[i]);
        }
      }
      return res;
    }
    • 先排序在去重
>思路:先将原数组排序,在与相邻的进行比较,如果不同则存入新数组

```
function unique(arr){
  var arr2 = arr.sort();
  var res = [arr2[0]];
  for(var i=1;i<arr2.length;i++){
    if(arr2[i] !== res[res.length-1]){
      res.push(arr2[i]);
    }
  }
  return res;
}
```
- 利用对象的属性去重(推荐)
>思路:每次取出原数组的元素,然后再对象中访问这个属性,如果存在就说明重复

```
function unique(arr){
  var res =[];
  var json = {};
  for(var i=0;i<arr.length;i++){
    if(!json[arr[i]]){
      res.push(arr[i]);
      json[arr[i]] = 1;
    }
  }
  return res;
}
```
- 利用下标查询
```
 function unique(arr){
     var newArr = [arr[0]];
     for(var i=1;i<arr.length;i++){
    if(newArr.indexOf(arr[i]) == -1){
             newArr.push(arr[i]);
        }
        }
        return newArr;
   }
```
- 简写法,es6数组去重(Set数据结构,它类似于数组,其成员的值都是唯一的。)
    - 拓展运算符(...)内部使用for...of循环
    ```
    let arr = [...new Set(['2018-03-05', '2013-06-12','2019-03-12','2018-03-05','2014-02-22'])].sort(function(a,b){
      return a<b ? -1:1; 
    })
    
    ```
    - 利用Array.from将Set结构转换成数组
    ```
     function unique(arr){
        return Array.from(new Set(arr));
     }
     ```
     
  • js判断网页的编码然后调用不同的路径

      var charset = document.characterSet || document.charset;
        if (! charset) {
            alert("can't get charset");
        }
         
        if(charset == "gbk") {
            documnet.location.href = "anotherURL";
        }
        //else if (charset == xxx) {
            // load another url
        //}
        
  • tr下必须的有td才有效果,不然不显示
  • $('div').fadeIn() $('div').show()要自然,更舒服
  • 使div水平和垂直方向上绝对居中未知宽高的父元素

    /* 以下代码保证元素在水平和垂直方向上绝对居中 */
    .item{
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
    • 水平垂直居中:使用flex布局实现
     html代码:   
    
    <div class="parent">
     <div class="item"></div>
    </div>
    
    css代码:
    
    /*解决方案:设置flex布局,并且定义居中元素的父元素justify-content和align-items属性为center即可*/
    /* 子元素CSS */
    .item{
        background: #222;
        color: #FFF;
        width: 100px;
        height: 100px;
    }
    .parent{
        display: flex;
        justify-content:center;
        align-items: center;
        /* 注意这里需要设置高度来查看垂直居中效果 */
        background: #AAA;
        height: 300px;
    }
    • 水平垂直居中:已知高度和宽度的元素解决方案
    html代码:
    
    <div class="item">
    </div>
    
    css代码:
    
    /*解决方案:
    将设置元素绝对定位,并且设置margin-left和margin-right为居中元素(高度或宽度/2)的负值即可*/
    div{
      width: 150px;
      height: 150px;
      background: #222;
      color: #FFF;
    }
    .item{
      position: absolute;
      top: 50%;
      left: 50%;
      margin-top: -75px;
      margin-left: -75px;
    }
    /* 以上代码即可保证一个已知高度和宽度的元素水平垂直都居中 */
  • CMD命令行快捷键

    cd进哪个目录时,只需要打出首字母然后TAB会自动补全,首字母相同的除外

  • WEBStorm的使用有点很烦人的问题
我的webstorm点开新的页面 必须按insert不然光标一直是方块 不能编辑;
而且 我如果选择一段代码 就不能删除 复制 但是鼠标右键是可以复制的 快捷键就不行 删除也不行 按backspace 光标会往左移 用起来很不顺手

解决办法

Vim Emulator取消勾选即可


扫描二维码,在手机上阅读!