- 博客(136)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 navigator.mediaDevices.getUserMedia录制桌面视频并保存
以下代码中有用到electron的desktopCapturer模块(用于PC应用开发),如果你并不需要,可以直接忽略,直接定义你要录制的视频源和音频源。重点如果要录制桌面,audio约束必须为 false,否则会报错,暂时不支持audio,如果你需要录制桌面的声音,则必须设置audio约束audio: {mandatory: {chromeMediaSource: ‘desktop’...
2018-12-01 17:57:48 13612 7
原创 electron的webview与加载的访客页之间的互相通信
webview 调用 加载页 方法通过<webview>.executeJavaScript(code[, userGesture, callback])访客页需要调用webview所在页面的方法,则需要在webview中加上属性 nodeintegration=“true”当有此属性时, webview 中的访客页(guest page)将具有Node集成, 并且可以使用像 r...
2018-10-11 16:27:22 6851 1
原创 饿了么组件BUG
饿了么组件表格,自定义表头。无法绑定值。以及和el-popover的组合BUG自定义表头的情况下,组件无法通过v-model绑定值, 可通过在 <template #header="{scope}">添加作用域处理组合BUG:当自定义表头的插槽内容为 popover弹窗的时候,如果trigger不是手动激活方式,内部维护的v-model绑定值,会导致数据被更新后立马还原成原始值。因此popover的触发方式需要选为 手动激活 trigger="manual"...
2021-03-11 18:17:38 751
原创 position:fixed 父子层关系
当元素被设置成fixed的时候,会创建新的层叠上下文,设置z-index只能在当前的层级上下文做比较,而无法跨层级比较。举个例子,以下的DOM结构 伪代码<app><div fixed> <dialog fixed z-index=2002></div></app><modal fixed z-index=2001&g...
2019-11-15 11:26:42 1142
转载 正确设置 MME类型
请求中的 response - header 中的content-type项是指�0�2�0�2服务器发送给客户端内容的MIME类型,如果 设置不对 那么浏览器怕是不能正常解析;const path = require(“path”);// 多用途Internet邮件扩展(MIME)类型const mimeType= {“.323”:“text/h323” ,“.3gp”:“video...
2019-03-15 10:57:02 2521
原创 常用的vscode 插件
rc-beautify - Beautify React JavaScript TypeScriptbeautify -beautify javascriptBookmarks - Mark lines and jump to themCSS Peek - jump to the cssDocument This - jdoc-TODO Highlight
2018-12-24 21:49:28 404
转载 iframe跨域问题解决办法
浏览器同源政策及其规避方法前端大全 4天前(给前端大全加星标,提升前端技能)作者:阮一峰http://www.ruanyifeng.com/blog/2016/04/same-origin-policy.html浏览器安全的基石是”同源政策”(same-origin policy)。很多开发者都知道这一点,但了解得不全面。本文详细介绍”同源政策”的各个方面,以及如何规避它。一、概述...
2018-11-13 11:36:19 24762
转载 npm yarn设置淘宝镜像
NPM设置淘宝镜像1.查询当前配置的镜像npm get registryhttps://registry.npmjs.org/设置成淘宝镜像npm config set registry http://registry.npm.taobao.org/2.换成原来的npm config set registry https://registry.npmjs.org/Yarn 设置...
2018-10-18 20:43:40 558
原创 create-react-app中使用装饰器
在create-react-app中使用装饰器create-react-app ExampleAppnpm run ejectnpm install babel-preset-stage-2 --save-devnpm install babel-preset-react-native-stage-0 --save-dev根目录下创建.babelrc 并添加{ "presets"...
2018-10-01 15:33:11 1022
原创 react、mobx学习
react、mobx、react-mobx、redux学习,该笔记只记录对自己有用的部分[目录]1 react基础1.1 prop 校验1.2 prop 初始值1.3 生命周期函数[1] react基础[1.1] prop 校验在开发环境下,为了更好地定位问题,最好能够对组件的对外接口prop做一些规范,以免传入错误的数据导致产生与我们期待不一致的数据结果,而PropType...
2018-09-20 10:15:59 356
原创 webpack 多页面打包,css不完整的问题
在webpack多入口文件配置中,如果使用了ExtractTextPlugin插件,则需要指定多个输出,否则每个入口作为一个chunk会覆盖掉后面打包的内容。所以可以写成:new ExtractTextPlugin('[name].css')这样就会根据入口名来打包成N个CSS文件...
2018-08-21 17:06:44 1517
原创 grid布局 内容撑开网格的问题 overflow:scrool 无法看到全部内容的问题
在使用grid布局的时候发现,如果内容超过了容器,则容器会被撑大。此时,使用overflow:scrool 则可以通过滚动条看完所有内容。然而,当我们使用grid布局嵌套的时候,发现,在(子)grid布局中,使用overflow,我们无法看完整体内容。 此时我们需要在(父)grid中,加上overflow:hidden ,使得,父容器不受子容器影响。在此基础上,在子容器加上overflow:...
2018-08-15 11:16:16 9472 1
原创 blob对象转arraybuffer
var reader = new FileReader(); //byte为blob对象 reader.readAsArrayBuffer(byte); reader.onload=(e)=>{ var buf = new Uint8Array(reader.result); //buf为uint8Array ...
2018-08-08 14:44:11 3538 1
原创 关于electron 和nodejs之间的关系的疑问
最近遇到了一些问题,是关于TCP通信这一块的。 electron的简介中提到,是把Chromium和Node.js合并到同一个运行时环境中那是不是意味着无论是v8的API或者是NODE的模块我都能正常使用呢?而在开发过程中我发现并不是这样的,或者说,简介中提到的合并nodejs到同一个运行时环境并不包括node的运行时环境。举个简单的例子,原本我们项目需要兼容各端做 长连接的,所以打算使...
2018-08-08 10:20:19 8454 2
原创 关于如何使用webpack命令行传入变量,并在全局通过process.env来调用
关于这个问题着实让人头疼。对于大型的项目而言,配置太过复杂了。以下是我的需求场景及【解决方案】由于当前的项目是在开源DEMO的基础上做的。所以里面的很多webpack配置我都不熟,简直让我生不如死。需求 原本的DEMO分成 dev环境和pro环境。 在打包的时候一定是pro环境,这个打包并不是单纯的webpack打包。而是把程序打包成 PC应用【electron】。 原本DEMO的...
2018-07-27 11:31:44 20494 1
原创 vscode render函数配置JSX语法提示
在文件-首选项-设置里面 添加到用户配置 “emmet.triggerExpansionOnTab”: true, “emmet.includeLanguages”: { “javascript”: “javascriptreact” }
2018-06-11 11:17:53 7719
原创 JQ的deferred对象
首先列出以下会涉及到的,该对象的一些方法的使用或相关联的其他方法,deferred.done()deferred.fail()deferred.catch()deferred.then()$.when()deferred.notify()deferred.progress()deferred.resolve()deferred.reject()deferred.always...
2018-05-25 16:55:16 455
转载 typescript 接口学习
文章转载自:https://blog.csdn.net/shi_weihappy/article/details/49506717 接口是TypeScript中非常实用的东西,这里我们看一下如何使用接口(Interface),主要的内容为:认识接口 可选参数 函数类型 数组类型 类类型 接口继承和混合类型 1、认识接口 我们看一个例子:function printlabel(labe
2018-05-03 09:01:16 718
原创 vue-cli 脚手架执行npm run build 执行出错的问题
以下是打包的时候报错的地方。执行出错后,CSS都没有打包成功,加粗内容为重要内容 Asset Size Chunks Chunk Names static/js/app.83b1ad767b13508e5ebd.js 117 kB 0 [emitted] a
2018-04-26 14:40:19 5108 1
原创 微信小程序自定义组件抽象节点
关于小程序 自定义组件 抽象节点的相关内容:抽象节点,有时候我们希望 一个组件的内容,是可以动态改变的,比如一个组件A的内容 这里是父组件的内容 这个组件A里面的select标签并不是实质存在的一个 子组件,而是自定义的 标签,我们称它为抽象节点我们希望调用父组件A的时候,可以通过不同的条件,使得select调用 B或者C子组件。这就是自定义组件抽象节点的目的。简单罗列下官方没有指明的文件目
2018-04-19 16:09:46 3037
原创 微信小程序学习过程中,需要注意的点
1、数据的更新必须用setData({})的形式更改,否则视图和逻辑数据无法保持一致 2、关于页面栈需要注意的是,通过tabBar更改,会将所有页面栈 清除只【留下】新的页面。【重加载】也一样,清理所有页面栈,加载的页面入栈 3、关于wx.navigateto中的url参数,无法跳转到tabBar中的页面!(同样,通过navigator标签实现跳转也是一样,url的路径不能跳转到tabBar中...
2018-04-16 21:14:19 277
原创 微信公众号支付需要注意的细节
重点及大概流程:重要流程: 预支付-》支付重点:签名及验签,这里只讲MD5签名签名生成的通用步骤如下: 第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。 特别注意以下重要规则: ◆ 参数名ASCII码从
2018-02-01 10:00:11 625 1
原创 如何查看自己NPM发布包的下载量
官方平台上只有短暂的统计,比如最后一天,最后一周以及最后一个月的下载量。想要看自己总的下载量,需要安装一个工具npm i npm-user-downloads [-g]安装完成后 输入命令:nud heartofblack last-month --limit=50 //heartofblack是我的NPM账户名,last-month是查询的时间,最后一个月查询条件分为...
2018-01-05 09:06:28 9457
原创 微信浏览器缓存问题
微信缓存清除不了,导致在调试或者上线更新出错情况下无法继续更新文件。一般HTML文件需要增加以下内容 <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-
2018-01-04 14:09:18 1732
原创 发布自己的包到NPM
步骤很简单【有些细节需要注意】: 1:注册NPM账号 https://www.npmjs.com/ 2:配置好自己的package.json文件 3:在项目目录执行 npm publish即可npm init 生成自己的配置文件【切记,发布包的名称name必须在NPM管理平台上是唯一的,所以在取号名字后,现在NPM官网上搜索是否有同名的安装包,如果没有就可以使用】。比如:{
2017-12-27 16:55:59 1173
原创 h5+runtime Native.js 混合APP连接蓝牙打印机
自己摸索了一下,并参考其他人的代码,修复了原来代码存在的问题, 问题1:字符串的getBytes函数,返回null【需要通过new的方式创建字符串】 问题2:初始化打印一次,之后无法使用【不要重复调用device.createInsecureRfcommSocketToServiceRecord(uuid)或重复引入CLASS】代码如下,可正常运行【注意,蓝牙打印机必须先匹配,保证手机蓝牙打开】
2017-12-26 11:26:01 9924 9
原创 关于canvas无法通过drawImage加载的原因
在使用drawImage方法的时候,发现无法加载 var can = $('#mycanvas')[0]; var cxt = can.getContext('2d'); var bg = new Image(); bg.src = "img/bg.jpg";
2017-12-06 10:33:28 5877 2
原创 vue-cli构建项目
安装vue-cli – npm install vue-cli -g初始化项目 – vue init webpack vuecliTest //webpack是vue提供的五种模板中的一种,vuecliTest是项目名,他会在你当前所在目录下创建与项目名一致的文件夹 在实际开发中,一般我们都会使用webpack这个模板,那我们这里也安装这个模板,在命令行输入以下命令: 输入命令
2017-11-30 14:31:07 424
原创 关于webpack,babel,以及es6和commonJS之间的联系
在这里理清一下以上几个概念以及他们之间的关系。现在的浏览器很多都不支持es6的语法,或者仅仅是部分支持,比如你用.360浏览器,你会发现它支持let却不支持箭头函数等。babel就承担了“翻译”的角色,把es6的写法转换成es5的写法。 但是有些人可能在一个项目中单独安装完babel,并成功生成了新的文件后,发现导入这个文件到浏览器中却报错了。其中很有可能被误导的是 import这个关键词。实际上
2017-11-15 17:57:34 5056 1
原创 Vue 父组件和子组件之间的双向数据流动 .sync【版本需要2.3.0+】
<head> <meta charset="UTF-8"> <title></title></head><body> <div id="test"> <my :foo.sync='msg'></my> <!--@update:foo='val=>msg=val'--> {{msg}} </div> <script
2017-11-01 17:37:46 1028
原创 Vue组件中data选项为什么必须是函数
官方解释 data 必须是函数 构造 Vue 实例时传入的各种选项大多数都可以在组件里使用。只有一个例外:data 必须是函数。实际上,如果你这么做:Vue.component('my-component', { template: '<span>{{ message }}</span>', data: { message: 'hello' }}) 那么
2017-10-28 10:55:25 4855 2
原创 Vue 事件修饰符.self的用法
<!-- 阻止单击事件冒泡 --><a v-on:click.stop="doThis"></a><!-- 提交事件不再重载页面 --><form v-on:submit.prevent="onSubmit"></form><!-- 修饰符可以串联 --><a v-on:click.stop.prevent="doThat"></a><!-- 只有修饰符 --><form v-on:s
2017-10-26 15:22:13 8672 2
原创 node/webpack全局变量污染控制
模块化的好处之一就是防止全局变量的污染,传统方法的引入javascript文件有一些局限性 比如 1/无法立即体现,脚本的执行依赖于外部扩展库(external library)。 2/如果依赖不存在,或者引入顺序错误,应用程序将无法正常运行。 3/如果依赖被引入但是并没有使用,浏览器将被迫下载无用代码。假设a,b两个文件存在依赖关系,b依赖于a,如果在a 文件之前存在与a文件的
2017-10-12 09:26:33 1785
原创 npm升级及cnpm安装
升级:npm install -g npm 每个版本的node有对应的npm版本,在升级NPM之前请先升级NODE到最新版本,否则无法在旧版本的NODE中使用NPM安装淘宝的镜像文件 npm install -g cnpm --registry=https://registry.npm.taobao.org
2017-10-10 22:52:32 1302
原创 JSONP跨域,CORS跨域,Hybrid APP跨域
JSONPjsonp: function(url, callbackFunc, data) //跨域请求 { var data = arguments[2] ? arguments[2] : {}; //默认参数为空 if(url != '' && callbackFunc != '') { $.ajax(
2017-09-27 18:07:27 759
转载 h5 移动web拍照
<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title></head><body><input accept="image/*" type="file" capture="camera" name="file" accept=".gif,.jpg,.jpeg,.png"><input type="file" ac
2017-09-27 11:45:09 360
原创 Vue数组为何没办法被监测变动?
Vue.set全局操作是为了更新数据而提供的,这个操作主要是针对某些情况而使用 注意事项 由于 JavaScript 的限制, Vue 不能检测以下变动的数组: 当你利用索引直接设置一个项时,例如: vm.items[indexOfItem] = newValue 当你修改数组的长度时,例如: vm.items.length = newLength 为了解决第一类问题,以
2017-08-29 09:31:17 8714 4
原创 如何使用prototype来美化自己的代码?
刚学JS的时候我们定义函数的基本方式就是函数声明function test(){}//于是当函数多了就变成了function test1(){}function test2(){}到了后面会有意地使用用函数表达式var test=function(){}以上函数声明和函数表达式实际上写法差不多,只是我们使用函数声明的目的是函数声明提升,也就是我们通过声明定义的函数被提前执行,这样我们就能使用
2017-08-22 12:46:31 369
原创 VUE框架 导致绑定事件的阻止冒泡失效
前面遇到了一个问题就是VUE框架内部做了一些处理,使得在我们通过v-for渲染DOM的时候添加新元素的时候,绑定事件也能对新增的元素有效。而这次遇到的问题则是,原本绑定事件中(该函数没有写在vue实例的methods中),导致阻止冒泡事件失效了。无论是return false 还是event.stopPropagation();都无效。此时需要通过用VUE提供了事件修饰符来处理,比如阻止事件冒泡@c
2017-08-17 18:16:31 5560
原创 javascript对JSON数组进行排序
我们经常回使用到数据格式var arr=[{num:1},{num:3},{num:2}]如何根据数组里面的JSON数据的某个key进行排序javascript有一个sort()方法,直接通过 arr.sort()进行排序,默认只对数组的值进行排序,然而以上的数组的值却是个JSON格式的。我们在看看sort方法的定义: 定义和用法 sort() 方法用于对数组的元素进行排序。 语法
2017-08-11 17:53:13 2597
微信测试号 自定义菜单 未授权
2017-03-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人