博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
知乎剪贴板的小细节
阅读量:6307 次
发布时间:2019-06-22

本文共 2118 字,大约阅读时间需要 7 分钟。

hot3.png

今天发现知乎的剪贴板运用的非常好,粘贴图片的话会上传,这个在很多地方已经有了,如果是粘贴的是一个链接,知乎还会将链接自动的替换为链接的标题。

handlePastedText: function(e, n, r) {                var i = r.getEditorState                  , o = r.setEditorState;                if (n || !p.test(e))                    return "not-handled";                var s = "//www.zhihu.com";                return "www2.zhihu.com" === location.host && (s = s.replace("www.zhihu.com", "www2.zhihu.com")),                t(function() {                    return fetch(s + "/scraper", {                        method: "POST",                        body: "url=" + encodeURIComponent(e),                        headers: {                            "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"                        },                        credentials: "include"                    })                }).then(function(e) {                    return e.json()                }).then(function(t) {                    var n = t.title                      , r = i()                      , s = r.getCurrentContent()                      , u = r.getSelection()                      , l = void 0;                    if (n && n !== e) {                        var c = a.Entity.create("link", "MUTABLE", {                            url: e                        });                        l = a.Modifier.replaceText(s, u, n, null, c)                    } else                        l = a.Modifier.replaceText(s, u, e);                    var p = a.EditorState.push(r, l, "insert-link");                    p && o(p)                }, function() {                    var t = i()                      , n = t.getCurrentContent()                      , r = t.getSelection()                      , s = a.Modifier.replaceText(n, r, e)                      , u = a.EditorState.push(t, s, "insert-characters");                    u && o(u)                }),                "handled"            }

原理大概就是发送了一个url给后台,让后台获取链接的标题,然后返回给前台做处理替换链接文本为标题,在发现这段代码的过程中,我又无意中发现了一个chrome 的牛逼之处,就是对于压缩过的js代码chrome可以点击 {}这样的一个按钮格式化显示出来,之前一直都没有发现有这个功能。

格式化之前:

格式化之后:

 

转载于:https://my.oschina.net/yangyan/blog/885379

你可能感兴趣的文章
centos 7.4 使用 pgxc_ctl 安装与使用
查看>>
Redis 单key值过大 优化方式
查看>>
【数据库】表分区
查看>>
nutz-sqltpl 1.3.4.RELEASE 发布,在 Nutz 项目中“解决 Java 拼接 SQL”问题
查看>>
城市 | 800个地铁站数据透析的京沪白领图鉴:隐形土豪、无产中产阶级和猪猪女孩...
查看>>
前端脚本!网站图片素材中文转英文
查看>>
linux的常用易忘命令
查看>>
PHP 分割字符串
查看>>
java 基于QRCode、zxing 的二维码生成与解析
查看>>
关于职业规划的一些思考
查看>>
img垂直水平居中与div
查看>>
Fabrik – 在浏览器中协作构建,可视化,设计神经网络
查看>>
防恶意注册的思考
查看>>
http2-head compression
查看>>
C# 命名空间
查看>>
订餐系统之同步美团商家订单
查看>>
使用ArrayList时设置初始容量的重要性
查看>>
Java Web-----JSP与Servlet(一)
查看>>
Maven搭建SpringMVC+Mybatis项目详解
查看>>
关于量子理论:最初无意的简化,和一些人有意的强化和放大
查看>>