前端开发中遇到的一些问题

更新日期: 2019-04-30阅读: 2167标签: 问题

页面两个标签(非block样式)之间有一个小margin,样式怎么改都去不掉

解决:html中标签换行了,把两个标签放到同一行可以解决,还有一种好办法就是使用flex。


app上点击有背景

解决:全局添加样式-webkit-tap-highlight-color: rgba(255, 255, 255, 0);


手机端input边框阴影

解决:添加-webkit-appearance: none;


chrome模拟器里点击元素错位

解决:我把百分比改成fit to window 好了,也可以来回切换几次机型。

git push 报错RPC failed; curl 55 SSLWrite() returned error -9805

解决:一次性提交代码太多导致,使用git log找到最近一次commit的代码,git reset {id}回退到commit前的状态,再分批次提交。


代码丢失,git log找不到

解决:git reset --hard xxx的记录,使用git reflog。


sudo nginx -s reload启动nginx报错:nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)

解决:sudo nginx -c /usr/local/etc/nginx/nginx.conf => sudo nginx -s reload


input中type为number时maxlength失效

解决:input type="tel"


微信授权callback有多个参数,出现丢失的情况。

解决:因为授权接口中&的多个参数会变成整个接口地址的参数,所以需要对&进行加密,使用var callbackurl = encodeURIComponent(window.location.href)进行加密


滚动不顺畅

解决:添加样式

-webkit-overflow-scrolling: touch;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;


事件冒泡

解决: stopPropagation,cancelBubble(ie)


移入移出多次触发

解决: mouseleave 对子元素不生效,不会冒泡


安装navicat,完成后提示文件损坏

解决: 打开终端,输入sudo spctl --master-disable


docsify配置的搜索功能失效

解决:回到文档首页(文档根目录),打开控制面板,找到localstorage,删除docsify.search.index和docsify.search.expires,刷新页面。


textarea里输入的换行、空格直接存到所需样式的div里时,没效果。

解决:转义一下,空格替换成&nbsp;换行rn换为<br>,template里使用{{{}}}而非{{}}解析。

nl2br: function (str, idx, tag, isXhtml) {
  let blankTag = '&nbsp;'
  let breakTag = (isXhtml || typeof isXhtml === 'undefined') ? '<br />' : '<br>'
  let newStr = (str + '').replace(/([^>\s]?)(\s)/g, '$1' + blankTag + '$2')
  newStr = (newStr + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2')
  if (tag) {
    this.changeData[idx][tag] = newStr
  }
  return newStr
}

还可直接添加样式white-space: pre-wrap;


html2canvas画出来的图片模糊

解决:只要这个html整体放大一倍,图片再缩小一倍就可以解决了


html2canvas把html页面存成图片时,图片不全

解决:先记录当前scrollTop值,window.scrollTo(0,0)到顶部,然后画图,就可以解决了,完了再回到原来的scroll位置 。


git拉取代码报错:Permission denied (publickey)

解决:

j .ssh
git config --global user.name "***"
git config --global user.email "***@163.com"
ssh-keygen -t rsa -C "***@163.com"

拷贝:id_rsa.pub 
放到 https://git.oschina.net/keys 的ssh里


点击事件失效

解决:使用css pointer-events: none;直接穿透当前div


类似微信,左滑动出现当前li的一些操作mask,touchmove在手机上失效

解决:在touchmove里使用一个阈值,Math.abs(endY-startY) 是否大于10,来决定是否preventDefault。


webpack 打包时, No ESLint configuration found

解决:项目中缺少.eslintrc.js文件,手动在根目录添加上。


七牛图片上传,下载文件名改名称

解决:普通的a标签下载,只需要在后面加上download=“1223”。七牛上是在href链接后面添加“?download/name”


new vue时报错error Do not use 'new' for side effects

解决:报错内容上方添加 / eslint-disable no-new /


h5获取地理位置信息时,用户第一次拒绝,后面一直都弹窗用户拒绝信息。

解决:android,设置-》应用程序管理器-》互联网(自带或安装的其他浏览器)-》权限-》位置信息(重启此开关)


新建js代码经常报错import declarations not support by current javascript version

解决:webstorm =》perference =》languages & frameworks =》javascript =》右侧选择ecmascript6


android微信里播放video,播放完了以后,关闭之后,video一直处在最顶层,z-index失效。

解决: 网上很多地方都没有找到答案,官网上说是无解的,走了个小弯路。关闭video时,把当前video存一下,然后找到父级,删除video再给父级innerHTML video 问题大致解决,目前只想到了这么个方法。

let thisNode = this
let parentNode = thisNode.parentNode
parentNode.removeChild(this)
parentNode.innerHTML = thisNode.outerHTML


chrome浏览器调试的时候,chrome://inspect连接手机之后,一片空白

解决:因为chrome调试之初需要连chrome服务器,所以存在翻墙问题,翻墙后就可以查看dom


mysql连接报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

解决:系统偏好设置-》最下面mysql-》进入-》点击initialize database-》输入密码,连解时也输入这个密码。


mysql连接池错误:Client does not support authentication protocol requested by server; consider upgrading MySQL client

解决:navicat 新建查询输入:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'


提取出来的头部,点击打开遮罩层,滚动时,底部跟着滚动。

解决:监听遮罩层状态,body位置改为fixed,此时每次关闭遮罩层时,页面都回到最顶部,是因为fixed脱离了文档流,所以应该先记录当前位置,position置为static时再定位到原先位置。代码如下:

  status (status) {
    if (status === 'open') {
      this.scrollY = window.scrollY
    }
    document.body.style.position = status === 'close' ? 'static' : 'fixed'
    window.scrollTo(0, this.scrollY)
  }

如果遮罩层的页面只有一页,且无需滚动的时候,只要禁用touchmove就可以了@touchmove.prevent,无需过多操作。


不同商品页,id变化,商品不变

解决: 监听$route变化,然后获取id重新去取数据


swiper插件的轮播图循环时,上面添加的点击事件失效

解决: 点击事件不绑定在swiper-slide上,添加在on中。原因是循环时,swiper复制了几份swiper-slide,然而却没有复制它的事件,所以导致事件时而生效,时而失效,事实上,当swiper-slide在第一个时,右滑页面,使其滚动到最后一个,这时点击失效必现。

  new Swiper('.first-block', {
    loop: true,
    paginationClickable: true,
    parallax: true,
    setWrapperSize: true,
    on: {
      click: function () {
        // 当前活动块的索引,与activeIndex不同的是,在loop模式下不会将 复制的块 的数量计算在内。
        const realIndex = this.realIndex
        vm.handleJumpe(vm.indexSwiperList[realIndex].href, {})
      }
    }
  })


火狐浏览器中,锚点链接失效。

解决:引起问题的原因是iframe。锚点链接放在iframe中,iframe + href 在火狐中不兼容,解决办法是判断是否是火狐浏览器,如果是,计算锚点id距离顶部的距离,然后滚动到此id位置。


fixed + input聚焦引起的fixed失效,搜索框跟随页面滚动了。

解决:在网上查到的大部分解决方案是分三部分,上中下,使用absolute定位,因为懒得改结构,找到一个简单的解决办法,touchmove的时候,input自动失去焦点。

<section @touchmove="handleTouchMove"></section>
handleTouchMove () {
  // 我是引用的search子组件
  this.$children[1].$refs.searchInput.blur()
}

原文来自:https://segmentfault.com/a/1190000019022842



链接: https://www.fly63.com/article/detial/3134

解决mac上每次升级nodejs都要重新安装扩展包的问题

以前用起来没注意到这个现象,最近一段时间发现,每次随着使用brew upgrade自动升级了nodejs版本,原来安装的nodejs扩展包就不起作用了,还需要重新安装一遍。再加上一些扩展包存储网站被墙的问题,这个过程真是令人痛不欲生

点击form 表单中的button导致页面刷新问题

做点击按钮切换背景样式与内容的时候每次都刷新页面 ,发现button写在了form 标签当中,将input或者button的type属性改为button,点击按钮页面就不会自动重新加载了。

解决ios端点击出现闪烁或黑色背景的问题

最近开发一个简单的H5页面,在IOS端测试的时候发现,点击按钮会闪动,出现一个黑色的背景一闪而过,影响用户体验。在ios端,safari浏览器上触发click事件有300ms的延迟相应

在ios端点击按钮闪烁解决方法

在ios端,safari浏览器上触发click事件有300ms的延迟响应,为touch添加的样式会和click冲突而出现闪烁问题,在safari中触摸事件的相应顺序如下:

js中使用append应注意自动补全问题

一般的标签是如<td></td>、<tr></tr>、<div></div>以成对出现,如果缺少一个都会出错,而append为了保证页面代码的准确性,会对标签进行自动补全,如

如何问一个有效的问题

提问前最好自己过一遍,看有哪里描述不清晰的,哪里表达不通顺,以及是否可以通过现有的这套描述可以让对方很清晰的知道问题所在。 问题:XXX 版本的 XXX 接口调用返回的数据不符合预期。

Node中url.parse(url, true).query:[Object: null prototype]问题

在node v13.5.0中通过url模块解析get请求参数的时候,遇到query: [Object: null prototype],如果我们在node中console.log一个null prototype,就会出现[Object: null prototype]

vue常见问题汇总及解决方案

找不到某些依赖或者模块这种情况一般报错信息可以看到是哪个包抛出的信息.,一般卸载这个模块,安装重新安装下即可。为什么要 return 一个数据对象呢? 官方解释如下: data 必须声明为返回一个初始数据对象的函数,因为组件可能被用来创建多个实例。

解决前端常见问题:竞态条件

竞态条件一词翻译自英语 race conditions。当我们在开发前端 web 时,最常见的逻辑就是从后台服务器获取并处理数据然后渲染到浏览器页面上,过程中有不少的细节需要注意

6 个意想不到的 JavaScript 问题

作为前端开发工程师,JavaScript 是我们的主要开发语言,它本身语法比较简单,并且生态系统也非常完善,在社区的影响力越来越大。在我们使用过程中,经常会遇到各种奇怪的问题

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!