han's bolg - 年糕記

2019-06前端月报

新闻

技术

  • 危险的 target=”_blank” 与 “opener”

    • 中文翻译
    • window.opener - 如果当前窗口是由另一个窗口打开的, window.opener保留了那个窗口的引用
    • 影响:

      1. 如果,你的网站上有一个链接,使用了 target=”_blank”,那么一旦用户点击这个链接并进入一个新的标签,新标签中的页面如果存在恶意代码,就可以将你的网站直接导航到一个虚假网站。此时,如果用户回到你的标签页,看到的就是被替换过的页面了。

      在新打开的页面,执行window.opener.location.replace(‘https://baidu.com/'),会将之前的网站的地址变成百度。

      1. 网站使用了 <a target="_blank">,那么新打开的标签页的性能将会影响到当前页面。
    • 防御:
      1. rel=”noreferrer” 保证来源隐私安全
      2. rel=”noopener” 保证无法使用opener对象
      3. 兼容性
        1
        2
        3
        4
        5
        6
        "use strict";
        function openUrl(url) {
        var newTab = window.open();
        newTab.opener = null;
        newTab.location = url;
        }
  • Chrome官方——资源优先级

    • 预加载, 如字体文件,关键路径 CSS 和 JavaScript
    • 预连接
    • 预提取(主站课程详情页到下单页可以考虑使用)
    • Preload, Prefetch And Priorities in Chrome
  • 如何编写深色主题的CSS

    • 一种聪明而优雅的方法
  • 只使用 CSS 的实时聊天

    • 作者灵感来源: https://twitter.com/davywtf/status/1124130932573839360
    • 原理:大概是每一个按钮都是一个css样式,点击按钮发送图片请求,服务端接收到请求,发送到客户端图片

      1
      2
      3
      .some-button:active {
      background-image: url('some_image.jpg')
      }
    • 看README:

      1
      2
      3
      4
      5
      Practical Details
      If you want to install and use this locally you should:

      1. Re-evaluate your life choices
      2. If you simply must continue, check out INSTALL.md

文章

工具

  • gridea
    • 一款跨平台桌面软件,可以在本地将 Markdown 文档编译成静态博客,然后发布到 GitHub Pages 或 Coding Pages
  • [Giflens] vscode插件,可以预览gif图片
  • 小红书用的弹幕播放器dplayer
  • Bit
    • Bit 是一个支持组件即服务的在线平台,可以在线托管存在组件,支持组件查找,组件版本号,独立运行,并且支持不同项目的组件集成。Bit 解决了管理组件系统这个通用问题,并且将开发人员从持续造轮子解脱,提高开发效率。