Split Screen 是一个用来分屏的 bookmarklet 程序. 它通过 javascript 通信协议实现[1].

特点

使用

  1. 将以下 Split Screen 链接拖到浏览器书签栏.
Drag this to your favorites: Split Screen
  1. 在任意打开的网站中点击该书签, 按功能说明操作即可

![Split Screen 演示](https://images.cnblogs.com/cnblogs_com/ayuuuuuu/1808482/o_200723125712splite screen.gif)

功能说明

  • URL 部分用来键入两个需要打开的网址 (默认为当前网址)
  • Direction 部分用来选择网页展示的方向 (水平 or 垂直, 默认为水平)
  • 左键点击 X, Cancel, 灰色区域按钮, 或键入 Esc 返回当前网页, 不进行任何操作
  • 左键点击 Confirm 按钮进行分屏操作 (该按钮默认聚焦)
  • 刷新页面后恢复最初页面

改进方向或缺陷

  • 一个标签页多次分屏存在问题

  • 不引入静态资源, 减少网络 IO

  • 不使用 document.write(), 使用 DOM 操作代替

  • 在浏览器新标签页无法使用

  • 需要刷新页面才能还原最初的页面

  • 性能优化

  • <dialog> 元素在一些浏览器还没有实现 (尤其是老浏览器), 通过打补丁展示效果可能不一致

  • 由于浏览器同源策略, 某些网页可能无法直接访问到, 比如 Google (一切以安全为第一要义)

代码

  • dialog 源码

  • bookmarklet.js 源码

    fetch('https://ayuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu.github.io/demos/dialog/index.html')
    .then((response) => response.text())
    .then((html) => {
    document.write(html);
    document.close();
    });
  • Split Screen Demo


  1. javascript 通信协议

Split Screen的更多相关文章

  1. iOS 9 学习系列:Split Screen Multitasking

    http://www.cocoachina.com/ios/20151010/13601.html iOS 9 的一个重大变化就是增加了多任务,这个多任务允许用户在屏幕上同时运行多个 app.有两种形 ...

  2. ubuntu Screen 的比较详细的命令

    Linux Screen Commands For Developers 转自:http://fosshelp.blogspot.com/2014/02/linux-screen-commands-f ...

  3. man screen

    http://www.gnu.org/software/screen/manual/screen.html Screen User's Manual Next: Overview, Previous: ...

  4. vim编辑指令(转)

    跳跃指令 类似于游览器中的<前进><后退>按钮  CTRL-] -> 跟着link/tag转入 (follow link/tag)  CTRL-o -> 回到上一次 ...

  5. Xcode 7在支持ipad的设备中需要支持分屏!

    http://sandy.int.ru/xcode/xcode7zaizhichiipaddeshebeizhongyaozhichifenping.html 在更新APP的时候发现ERROR ITM ...

  6. Git - Tutorial [Lars Vogel]

    From: http://www.vogella.com/tutorials/Git/article.html Git - Tutorial Lars Vogel Version 5.6 Copyri ...

  7. R语言绘图002-页面布局

    par().layout().split.screen()函数 1. par()函数的参数详解 函数par()可以用来设置或者获取图形参数,par()本身(括号中不写任何参数)返回当前的图形参数设置( ...

  8. Git - Tutorial官方【转】

    转自:http://www.vogella.com/tutorials/Git/article.html#git_rename_branch Lars Vogel Version 5.8 Copyri ...

  9. eclipse 分屏

    刚刚一直找不到eclipse分屏功能,查了下发现是可以的. 具体见:http://www.coderanch.com/t/101996/vc/Split-screen-editor-Eclipse E ...

随机推荐

  1. python实现从文件夹随机拷贝出指定数量文件到目标文件夹

    为了方便倒腾数据,功能如题,该脚本和操作目录在同一根目录 实际运行时要手动修改程序中:cpfile_rand('img', 'outfile', 10) # 操作目录,输出目录,输出数量 import ...

  2. github Pull Request合入全流程介绍

    图解全流程 详细步骤 1. fork仓库 2. clone fork仓库到本地 3. 关联upstream原仓库 在fork本地仓库输入下面命令进行关联: git remote add upstrea ...

  3. 深度学习论文翻译解析(八):Rich feature hierarchies for accurate object detection and semantic segmentation

    论文标题:Rich feature hierarchies for accurate object detection and semantic segmentation 标题翻译:丰富的特征层次结构 ...

  4. spring bean post processor

    相关文章 Spring 整体架构 编译Spring5.2.0源码 Spring-资源加载 Spring 容器的初始化 Spring-AliasRegistry Spring 获取单例流程(一) Spr ...

  5. C++ 半同步半异步的任务队列

    代码已发布至 HAsyncTaskQueue

  6. 读取模式下cbc latch的事件模拟(热块竞争和热链竞争)-P62

    文章目录 1. 背景 2. 过程 2.1 热块竞争 2.1.1 版本11.2.0.1.0 2.1.1.1 session 1(sid:34) 2.1.1.2 session 2(sid:35) 2.1 ...

  7. 初步了解JVM

    先看一眼JVM虚拟机运行时的内存模型: 1.方法区 Perm(永久代.非堆) 2.虚拟机栈 3.本地方法栈 (Native方法) 4.堆 5.程序计数器 1 首先的问题是:jvm如何知道那些对象需要回 ...

  8. ZJOI2008 骑士(树型DP)

    ZJOI2008 骑士 题目大意 给出n个人的战斗力和每个人讨厌的人,然后问最大能有多大的战斗力 solution 简单粗暴的题意,有一丢丢背包的感觉 那敢情就是DP了 有点像没有上司的舞会,,, 根 ...

  9. 深入浅出了解CDN

    背景: 本文公众号来源:漫话编程 虎牙直播2000W+人在线观看,直播间还不卡,据了解,2018年1月,阿里云为虎牙提供了边缘节点服务(ENS).基于阿里云ENS,可以轻松地将业务模块放到边缘运行,在 ...

  10. Howdoo中文社区AMA总结(10月21日)

    10月21日Howdoo举办了中文社区的首次AMA活动,CEO -David Brierley和CMO -Jason Sibley加入到社群中与大家交流并回答社区成员的相关问题. 以下是精选的问题总结 ...