置顶 👍
最新 🆕
因为没有将钩子 '.husky/pre-commit' 设置为可执行 0 💬 2023-09-08 06:34:00
🏷️ :
提示:因为没有将钩子 '.husky/pre-commit' 设置为可执行,钩子被忽略。您可以通过
提示:配置 `git config advice.ignoredHook false` 来关闭这条警告。
提示:因为没有将钩子 '.husky/commit-msg' 设置为可执行,钩子
[更多>>>](https://github.com/cklwblove/blog/issues/127)
---
#### [加减乘除运算集成`big.js`,解决js小数精度问题](https://github.com/cklwblove/blog/issues/126) <sup>0 :speech_balloon:</sup> 2023-08-28 00:46:49
:label: :
前提:
当涉及到浮点数计算时,js中的精度丢失问题, 是由于使用IEEE 754标准来表示和计算浮点数的方式引起的。这个问题不仅仅在js中存在,而是在所有使用IEEE 754标准的编程语言中都会遇到。
IEEE 754标准定义了两种常见的浮点数表示形式:单精度(32位)和双精度(64位)。在
[更多>>>](https://github.com/cklwblove/blog/issues/126)
---
#### [ 自定义 pages 后或其他情况下,CSS 中的相对路径替换不正确](https://github.com/cklwblove/blog/issues/125) <sup>0 :speech_balloon:</sup> 2023-08-14 08:52:17
:label: :
解决方案如下:
const styles = [ 'css', 'postcss', 'scss', 'sass', 'less', 'stylus' ]
const modules = [ 'vue-modules', 'vu
Webstrom uniapp rpx格式化出现空格及报错飘红的解决方法 0 💬 2023-08-10 05:35:38
🏷️ :
下载 wechat mini program support 插件,设置里面小程序支持选为启用。等待一两分钟即可。刚选完时候我的也没反应,但确实过了一会之后就不漂红,格式化没空格了
(注意要style开启scss支持lang="scss"),否则也会飘红报错
<img width="
自定义三方UI组件库的组件名称前缀 0 💬 2023-05-26 07:55:54
🏷️ :
const isComponent = (val, prefix) => {
return (
typeof val === 'object' &&
val.name &&
typeof val.name === 'string' &&
val
[更多>>>](https://github.com/cklwblove/blog/issues/123)
---
## 分类 :card_file_box:
<details open="open">
<summary>
<img src="assets/wordcloud.png" title="词云, 点击展开详细分类" alt="词云, 点击展开详细分类">
<p align="center">:cloud: 词云 :cloud: <sub>点击词云展开详细分类:point_down: </sub></p>
</summary>
<details>
<summary>:+1:置顶 <sup>1:newspaper:</sup></summary>
- [微信浏览器H5页面软键盘关闭导致页面空缺的问题](https://github.com/cklwblove/blog/issues/2) <sup>0 :speech_balloon:</sup>
</details>
<details>
<summary>:art: Vue <sup>6:newspaper:</sup></summary>
- [为所有路由统一添加 query](https://github.com/cklwblove/blog/issues/74) <sup>0 :speech_balloon:</sup>
- [vue mixins](https://github.com/cklwblove/blog/issues/59) <sup>0 :speech_balloon:</sup>
- [vue 定时器问题](https://github.com/cklwblove/blog/issues/57) <sup>0 :speech_balloon:</sup>
- [Error in nextTick: "InvalidCharacterError: Failed to execute 'setAttribute' on 'Element': '`' is not a valid attribute name."](https://github.com/cklwblove/blog/issues/48) <sup>0 :speech_balloon:</sup>
- ["NavigationDuplicated" errors(解决多次点击重复路由报错)](https://github.com/cklwblove/blog/issues/44) <sup>0 :speech_balloon:</sup>
- [vue项目刷新当前页面](https://github.com/cklwblove/blog/issues/34) <sup>0 :speech_balloon:</sup>
</details>
<details>
<summary>:fire: 前端 <sup>23:newspaper:</sup></summary>
- [crypto-js 库按需引用及懒加载](https://github.com/cklwblove/blog/issues/81) <sup>0 :speech_balloon:</sup>
- [加载 mp4 文件出现 403](https://github.com/cklwblove/blog/issues/78) <sup>0 :speech_balloon:</sup>
- [CSS gradient not working on iOS](https://github.com/cklwblove/blog/issues/77) <sup>0 :speech_balloon:</sup>
- [echarts按需加载及懒加载使用方法](https://github.com/cklwblove/blog/issues/76) <sup>0 :speech_balloon:</sup>
- [img 标签插入图片返回403,浏览器可以直接打开](https://github.com/cklwblove/blog/issues/73) <sup>0 :speech_balloon:</sup>
- [移动端混合式开发时,html强缓存的问题](https://github.com/cklwblove/blog/issues/61) <sup>1 :speech_balloon:</sup>
- [Gradient has outdated direction syntax. New syntax is like `closest-side at 0 0` instead of `0 0, closest-side`](https://github.com/cklwblove/blog/issues/60) <sup>0 :speech_balloon:</sup>
- [微信图片带有logo的二维码,有些机型长按不能识别](https://github.com/cklwblove/blog/issues/56) <sup>0 :speech_balloon:</sup>
- [ElementUI如何展开指定Tree树节点](https://github.com/cklwblove/blog/issues/55) <sup>0 :speech_balloon:</sup>
- [H5页面监听Android物理返回键](https://github.com/cklwblove/blog/issues/53) <sup>0 :speech_balloon:</sup>
- [检测 <video>是否开始播放(加载到资源有了画面)的方法](https://github.com/cklwblove/blog/issues/51) <sup>0 :speech_balloon:</sup>
- [打包构建后,js文件移除 'use strict'](https://github.com/cklwblove/blog/issues/50) <sup>0 :speech_balloon:</sup>
- [H5在移动端遇到的常见问题](https://github.com/cklwblove/blog/issues/42) <sup>0 :speech_balloon:</sup>
- [css3 flex 实现横向滚动条,子元素宽度自适应](https://github.com/cklwblove/blog/issues/40) <sup>0 :speech_balloon:</sup>
- [深入研究-webkit-overflow-scrolling:touch及ios滚动](https://github.com/cklwblove/blog/issues/38) <sup>0 :speech_balloon:</sup>
- [Safari & iOS - window.performance.timing.navigationStart issue](https://github.com/cklwblove/blog/issues/36) <sup>0 :speech_balloon:</sup>
- [vconsole 问题](https://github.com/cklwblove/blog/issues/35) <sup>1 :speech_balloon:</sup>
- [IOS 拍摄照片旋转问题修复](https://github.com/cklwblove/blog/issues/33) <sup>0 :speech_balloon:</sup>
- [安卓机上输入法会盖住输入框问题](https://github.com/cklwblove/blog/issues/32) <sup>0 :speech_balloon:</sup>
- [iPhone Safari 下 input disabled 颜色](https://github.com/cklwblove/blog/issues/31) <sup>0 :speech_balloon:</sup>
- [URL unicode #号转成 %23 路由解析问题(部分安卓机型)](https://github.com/cklwblove/blog/issues/30) <sup>0 :speech_balloon:</sup>
- [在浏览器端对图片进行压缩 & 上传](https://github.com/cklwblove/blog/issues/29) <sup>0 :speech_balloon:</sup>
- [H5唤起APP指南](https://github.com/cklwblove/blog/issues/26) <sup>0 :speech_balloon:</sup>
</details>
<details>
<summary>:framed_picture:封面 <sup>1:newspaper:</sup></summary>
- [Vue项目部署遇到的问题及解决方案](https://github.com/cklwblove/blog/issues/1) <sup>0 :speech_balloon:</sup>
</details>
<details>
<summary>bug <sup>0:newspaper:</sup></summary>
</details>
<details>
<summary>duplicate <sup>0:newspaper:</sup></summary>
</details>
<details>
<summary>enhancement <sup>0:newspaper:</sup></summary>
</details>
<details>
<summary>good first issue <sup>0:newspaper:</sup></summary>
</details>
<details>
<summary>help wanted <sup>0:newspaper:</sup></summary>
</details>
<details>
<summary>invalid <sup>0:newspaper:</sup></summary>
</details>
<details>
<summary>Nginx <sup>3:newspaper:</sup></summary>
- [nginx跨域处理](https://github.com/cklwblove/blog/issues/80) <sup>0 :speech_balloon:</sup>
- [Nginx 相关命令](https://github.com/cklwblove/blog/issues/41) <sup>0 :speech_balloon:</sup>
- [Nginx的 gzip设置](https://github.com/cklwblove/blog/issues/21) <sup>0 :speech_balloon:</sup>
</details>
<details>
<summary>Nodejs <sup>2:newspaper:</sup></summary>
- [linux中使用npm全局安装的命令无法运行](https://github.com/cklwblove/blog/issues/49) <sup>0 :speech_balloon:</sup>
- [Module not found: Error: [CaseSensitivePathsPlugin]](https://github.com/cklwblove/blog/issues/47) <sup>0 :speech_balloon:</sup>
</details>
<details>
<summary>question <sup>0:newspaper:</sup></summary>
</details>
<details>
<summary>reg <sup>0:newspaper:</sup></summary>
</details>
<details>
<summary>SVN <sup>1:newspaper:</sup></summary>
- [svn: “Server SSL certificate verification failed: issuer is not trusted”](https://github.com/cklwblove/blog/issues/58) <sup>0 :speech_balloon:</sup>
</details>
<details>
<summary>TS <sup>0:newspaper:</sup></summary>
</details>
<details>
<summary>Webapck <sup>3:newspaper:</sup></summary>
- [Module not found: Error: [CaseSensitivePathsPlugin]](https://github.com/cklwblove/blog/issues/47) <sup>0 :speech_balloon:</sup>
- [webpack require.context 示例](https://github.com/cklwblove/blog/issues/43) <sup>0 :speech_balloon:</sup>
- [修复 Lazy loading routes Error: Cyclic dependency](https://github.com/cklwblove/blog/issues/39) <sup>0 :speech_balloon:</sup>
</details>
<details>
<summary>wontfix <sup>0:newspaper:</sup></summary>
</details>
<details>
<summary>开源 <sup>1:newspaper:</sup></summary>
- [使用<a>标签时,你可能会忽略的一个安全问题](https://github.com/cklwblove/blog/issues/3) <sup>0 :speech_balloon:</sup>
</details>
<details>
<summary>浏览器 <sup>1:newspaper:</sup></summary>
- [net::ERR_INCOMPLETE_CHUNKED_ENCODING 200](https://github.com/cklwblove/blog/issues/54) <sup>0 :speech_balloon:</sup>
</details>
</details>
# 开源项目
| [使用<a>标签时,你可能会忽略的一个安全问题](https://github.com/cklwblove/使用<a>标签时,你可能会忽略的一个安全问题) | > [相关链接](https://segmentfault.com/a/1190000017840948)
## 问题场景
我们可以用 `target='_blank' `来实现**在一个新窗口中打开链接**。
当一个外部链接使用了 `target=_blank` 的方式,这个外部链接会打开一个新的浏览器tab。此时,新页面会打开,并且和原始页面占用同一个进程。这也意味着,如果这个新页面有任何性能上的问题,比如有一个很高的加载时间,这也将会影响到原始页面的表现。如果你打开的是一个同域的页面,那么你将可以在新页面访问到原始页面的所有内容,包括`document`对象(`window.opener.documen`t)。如果你打开的是一个跨域的页面,你虽然无法访问到`document`,但是你依然可以访问到`location`对象。
**如果你在你的站点或者文章中,嵌入了通过新窗口打开一个新页面的链接,这个新页面可以使用window.opener,在一定程度上来修改原始页面。**
## 解决方案
在带有`target="_blank"`的`<a>`标签中,加上`rel="noopener"`属性。如果使用`window.open`的方式打开页面,将`opener`对象置为空。这样的副作用是:在某些低版本浏览器中,新页面中拿不到`referer`信息。
// window.open var newWindow = window.open(); newWindow.opener = null;
| --- | --- | --- |