区别: p:first-child的含义:匹配父元素的第一个子元素、并且这个元素必须是P,如果不是则匹配不到;p:first-of-type的含义:匹配父元素的第一个类型是P的子元素; 最大误区:大部分人刚开始接触时会想当然以为first-child是first-of-type的效果,但其实,first-of-type才是大部分人想要的。 示例: <style>p:firs... 阅读全文
区别: p:first-child的含义:匹配父元素的第一个子元素、并且这个元素必须是P,如果不是则匹配不到;p:first-of-type的含义:匹配父元素的第一个类型是P的子元素; 最大误区:大部分人刚开始接触时会想当然以为first-child是first-of-type的效果,但其实,first-of-type才是大部分人想要的。 示例: <style>p:firs... 阅读全文
问题描述组件A里面引用组件B,组件B同时又引用组件A,就这么简单,但是总是报如下错误: [Vue warn]: Failed to mount component: template or render function not defined最小复现代码index.vue:<style>.test-node { border: solid 1px #aaa; margi... 阅读全文
正文源自组内一个文件上传组件,从某个版本开始,同学A觉得代码里面有太多没被引用的变量就把它全删了,但是他没发布,后来同学B基于这个代码发布了一个新包,结果,bug出现了。 原始代码: function render() { const {className, onChange, ...others} = this.props; return <Uploader classNa... 阅读全文
如题出于安全考虑,普通页面直接执行window.close()时不会生效,控制台会出现如下警告: Scripts may not close windows that were not opened by script. 只有那些通过<a target="_blank">链接</a>或者window.open()打开的页面才支持关闭,为什么这么规定呢?我猜大概可能是觉得... 阅读全文
先看示例: <html><body> <p>form内任意一个输入框回车都会触发表单提交:</p><form onsubmit="handleSubmit(event)"> <p>姓名: <input type="text" name="name" /></p> <p>性... 阅读全文
现象在最新的Mac10.15版本上报NET::ERR_CERT_WEAK_KEY 解决错误: 证书详情: 原因参考苹果官网给出的提示(https://support.apple.com/en-us/HT210176): RSA秘钥长度必须>=2048,小于这个长度的将不会被信任;必须使用SHA-2签名,使用SHA-1签名证书将不会被信任; 解决按照上述提示把证书秘钥长... 阅读全文
如题一般APP都注册了某个协议使得通过访问一个地址就能唤起APP并实现指定功能。最近在做的H5页面需要唤起手机原生地图: 所以整理了国内三大地图APP的唤起方式如下: <a href="androidamap://poi?sourceApplication=dingtalk&keywords=阿里巴巴">打开安卓高德地图</a><br><a hre... 阅读全文
背景你是否有这样的烦恼,想双击打开一个index.html,但是这个页面要求必须使用http打开,但是手上又没有一个可以直接用的静态资源服务器。 run-server解决方案来了,无聊写了一个只有99行代码的超级简单的静态资源服务器run-server,不依赖任何模块,只需要安装一次即可: npm i run-server -g 以后在任何目录执行run-sever命令即可自动运行一个以当前... 阅读全文
如题默认情况下,canvas在视网膜屏幕下写出的字体会有模糊问题,本方法已适配,完整代码如下: /** * 生产水印,并返回水印URL地址,已适配视网膜屏幕下字体模糊问题 * @param {*} text 水印文字 * @param {*} el 要设置水印的目标元素,默认 document.body * @param {*} config 配置项 * @returns {String} 水印... 阅读全文
相比于普通的包只需要在2个地方特殊处理一下: 第一package.json里面加上bin配置,以下示例中,run-server是安装之后生成的命令,index.js是你的代码入口。 { "bin": { "run-server": "./index.js" }} 第二index.js第一行需要加如下代码(特别注意,!和/usr之间没有空格!!!具体原因您可以看本文最... 阅读全文
正文其实转让很简单,进入某个package的Admin页面(https://www.npmjs.com/package/你的模块名/access ),邀请要转让的新账号,然后删除老账号,稍等十几分钟就ok了。 问题出就出在需要稍等十几分钟上面。刚开始不知道,碰到了后文提到的问题,以为是npm官网的bug,正准备怒气冲冲的写一个吐槽npmjs的文章,结果写着写着发现问题没了,哈哈,本文纯当给大... 阅读全文
已知已知带有content-disposition头部的pdf文件在Chrome下是无法预览的,验证步骤如下: 假设有如下2个pdf文件,文件a.pdf的Header中有content-disposition字段: content-disposition: attachment; filename="a.pdf"content-length: 831639content-type: appli... 阅读全文
更多文章请戳VSCode插件开发全攻略系列目录导航。 本文提炼一些常见的API使用场景供参考。 本文内容有待完善//TODO 有待完善 编辑器相关修改当前激活编辑器内容替换当前编辑器全部内容: vscode.window.activeTextEditor.edit(editBuilder => { // 从开始到结束,全量替换 const end = new vscode... 阅读全文
更多文章请戳VSCode插件开发全攻略系列目录导航。 代码片段代码片段,也叫snippets,相信大家都不陌生,就是输入一个很简单的单词然后一回车带出来很多代码。平时大家也可以直接在vscode中创建属于自己的snippets: 创建代码片段那么如何在扩展中创建snippets呢? package.json文件新增如下: "contributes": { "snippets": ... 阅读全文
更多文章请戳VSCode插件开发全攻略系列目录导航。 发布方式插件开发完了,如何发布出去分享给他人呢?主要有3种方法: 方法一:直接把文件夹发给别人,让别人找到vscode的插件存放目录并放进去,然后重启vscode,一般不推荐;方法二:打包成vsix插件,然后发送给别人安装,如果你的插件涉及机密不方便发布到应用市场,可以尝试采用这种方式;方法三:注册开发者账号,发布到官网应用市场,这个发... 阅读全文
更多文章请戳VSCode插件开发全攻略系列目录导航。 什么是Webview大家都知道,整个VSCode编辑器就是一张大的网页,其实,我们还可以在Visual Studio Code中创建完全自定义的、可以间接和nodejs通信的特殊网页(通过一个acquireVsCodeApi特殊方法),这个网页就叫WebView。内置的Markdown的预览就是使用WebView实现的。使用Webview可以... 阅读全文
更多文章请戳VSCode插件开发全攻略系列目录导航。 前言在介绍完一些比较简单的内容点之后,我觉得有必要先和大家介绍一些开发中遇到的一些细节问题以及技巧,特别是后面一章节将要介绍WebView的知识,这个坑会比较多,避免大家走弯路。 开发方式最理想的方式是准备双显示器,一个写代码,一个运行插件,实践证明这种方式开发效率会提升很多,每次修改完代码之后直接Ctrl+R重新加载即可,非常方便。 日... 阅读全文
更多文章请戳VSCode插件开发全攻略系列目录导航。 跳转到定义跳转到定义其实很简单,通过vscode.languages.registerDefinitionProvider注册一个provider,这个provider如果返回了new vscode.Location()就表示当前光标所在单词支持跳转,并且跳转到对应location。 为了示例更加有意义,我在这里写了一个支持package.... 阅读全文
更多文章请戳VSCode插件开发全攻略系列目录导航。 命令我们在前面HelloWord章节中已经提到了命令写法,这里再重温一下。 context.subscriptions.push(vscode.commands.registerCommand('extension.sayHello', () => { vscode.window.showInformationMessage('... 阅读全文
更多文章请戳VSCode插件开发全攻略系列目录导航。 package.json在详细介绍vscode插件开发细节之前,这里我们先详细介绍一下vscode插件的package.json写法,但是建议先只需要随便看一下,了解个大概,等后面讲到具体细节的时候再回过头来看。 如下是package.json文件的常用配置,当然这里还不是全部: { // 插件的名字,应全部小写,不能有空格 ... 阅读全文