(1)通过某种UI操作,进入“信息收集”模式;
(2)在此模式下,用户通过连续的touch事件选择他感兴趣的内容(实际上产生一个hit test命中一个element),最终创建的dom fragment将是这些element的LCA(最小公共祖先);(3)序列化此fragment,此对应的html内容存储进浏览器本身的sqlite数据库中
注意,上述(2)最终的LCA要求整个fragment必须是一个element(DOM子树),但实际PC平台上用户鼠标拖放得到的selection可能并不是一个element,而是多个相邻elemennts的并;不过拖放操作在涉及页面上下超过一屏的scroll时操作不是很方便。
进一步的,(1)(2)步骤可能不需要,移动手机浏览器上用户实际上也是可以拖放的,只不过稍微麻烦一点,缺点就是,W3C的规范允许网页JS屏蔽复制黏贴功能,这个特性需要强制打开绕过
再者,信息收集的任务可能也不需要修改内核,在选择了一段selection之后,可注入JS,将此selection序列化为HTML代码,并Ajax POST出来,或者通过JavaScript interface binding传出来
进一步的,(1)(2)步骤可能不需要,移动手机浏览器上用户实际上也是可以拖放的,只不过稍微麻烦一点,缺点就是,W3C的规范允许网页JS屏蔽复制黏贴功能,这个特性需要强制打开绕过
再者,信息收集的任务可能也不需要修改内核,在选择了一段selection之后,可注入JS,将此selection序列化为HTML代码,并Ajax POST出来,或者通过JavaScript interface binding传出来
缘由:我喜欢架设一个本地的Wordpress,将网上的技术博客、有趣的内容保存起来。这个数据存储如果直接做进浏览器里当然更好。