javascript
文章平均质量分 54
Allen白
努力成为一个合格的前端工程师。
展开
-
postMessage的使用
postMessage是H5的API,用来解决跨页面通信的。postMessage的使用分为发送方和接收方。发送方的代码用法如下:otherWindow.postMessage(message, targetOrigin, [transfer]);otherWindow是接收方的window对象。可以通过以下几种方法获得,例如window.open()方法返回的值就是打开页面的window对象,或...原创 2018-02-28 21:08:07 · 8427 阅读 · 0 评论 -
generator yield-delegation
generator yield-delegation在generator函数内部,通过yield*语句,可以将yield委托给其他任何实现iterable的对象。委托给generator函数生成的iterable对象调用generator函数会返回一个实现iterable的对象(该对象同时也是一个iterator)。通过yield* otherGenerator()可以将generator...原创 2019-02-11 13:34:25 · 136 阅读 · 0 评论 -
自己实现一个async函数
自己实现一个async函数async函数能将promise链式调用的写法改成同步的写法。让代码变得更简洁易懂。es6中的async是语法糖,我们自己可以实现类似async函数的功能。下面是myAsync的代码:/** * * @param {Function} gen 一个generator函数 */function myAsync(gen) { var args = [].sl...原创 2019-02-11 13:32:57 · 1006 阅读 · 0 评论 -
探索 Object.defineProperty
探索 Object.definePropertyObject.defineProperty 可以给对象定义属性,以及属性的描述。基本使用方法var person = { name: "Allen" };// 定义属性 'gender'// 可配置(configurable)// 可枚举(enumerable)// 可写(writable)Object.defineProperty...原创 2019-02-08 03:33:59 · 110 阅读 · 0 评论 -
javascript用createRange拷贝Range片段到粘贴板
最近项目需要做一个编辑器,其中有个按钮点击可以将编辑好的文章一键复制到粘贴板,产品的要求是复制好的文章能连带图片和样式一起粘贴到word中。本来打算用clipboard.js来做的,但发现它只能复制文本。在谷歌之后,有了新的方案:利用Range对象选择需要复制的范围,然后将选好的范围复制下来。我用layui的define方法封装了一个对象layui.define(['jquery','layer'...原创 2018-06-16 10:57:15 · 2289 阅读 · 0 评论 -
解决clipboard.js在vue的弹窗组件中无效
最近有个需求,用户点击按钮会弹出一个弹窗,弹窗内会有一个复制按钮,点击该复制按钮会将url复制到剪贴板。 项目用的是用vue + quasar UI。我用quasar的Modal封装了一个弹窗组件,并在弹窗组件的mounted方法实例化一个clipboard实例。代码如下:import ClipboardJS from 'clipboard'...mounted(){ le...原创 2018-04-27 14:34:29 · 5767 阅读 · 0 评论 -
使用axios和webpack-dev-server时无法从后台获取cookie
闲着没事打算把老的后台系统用vue撸一遍。用的是quasar框架,ajax用axios,还配置了webpack-dev-server的proxy作为代理服务器。 刚上手做了个登录页面就出问题了。老的后台是使用session配合cookie做登录验证的,但我用axios发送的登录请求的响应头没有set-cookie。用chrome的开发者工具查看了下请求,发现post请求的参数是req...原创 2018-04-17 11:06:48 · 3008 阅读 · 0 评论 -
js嵌套for循环-标签的使用
javascript嵌套for循环内层如何break或continue外层的for循环呢?很简单,可以给外层for循环加上标签,break或continue的时候加上对应的标签名就可以了:outer: // 给外层的for循环加上标签,取名为outerfor(var i=0;i<4;i++){ inner: for(var j=0;j<4;j++){ if(j>...原创 2018-02-25 01:38:25 · 4687 阅读 · 0 评论 -
javascript自动分号补齐带来的坑
javascript的自动分号补齐 ( auto semicolon insertion,简称ASI ),可以让我们敲代码的时候不用写分号,但是如果使用不妥有时候也会带来不必要的麻烦。例如当下一行开头是 “(“、“ [“、“ /” 这三个字符之一的时候:a = b(function () { ... }())a=b的后面并不会自动补上分号,而是会被解析成a = b(function () {.....原创 2018-02-25 00:41:00 · 1299 阅读 · 0 评论 -
generator内部有异常时的执行机制
generator内部有异常时的执行机制执行generator函数会返回一个iterator,iterator调用next方法会返回一个值。如果next执行过程中出现异常是否还会返回值呢?如果返回值的话,会返回那个值呢?情况一:捕获的异常main generator内出现了一个被捕获的异常。function *main(){ yield 1; try{ undefinedVa...原创 2019-02-11 13:35:30 · 233 阅读 · 0 评论