内网IP调解激发的Chrome历史记录修正及ShadowRoot的进修
由于IP常常更改, 致使当地项目的那些存在地点栏的历史记录就都失效了, 倏忽脑洞大开, 有无要领修正当地历史记录的要领?
主意是: 假定我原IP是
192.168.1.51, 新IP是
192.168.1.63, 我历史记录有
http://192.168.1.51:8080/test.html, 我经由过程某种要领强行修正Chrome历史记录将192.168.1.51替代成192.168.1.63, 如许, 下次在地点栏输入test, 他就能够自动添补
http://192.168.1.63:8080/test.html了.
现实是严酷的, Chrome软件的历史记录貌似是二进制文件, 也多是出于平安斟酌. 为了疾速解决题目, 我就不盘算去研讨怎样修正二进制文件了.
因而改了host, 映射了一个Ip到当地域名, 为了轻易内网其他小白用户疾速修正host, 我就搞了个bat文件给他们, 实行后就追加一条来修正host, 参考批处理文件中ECHO敕令显现换行(由于我装了adblocker接见的时刻页面展现一般, 厥后朋侪说看不到, 故划掉).
echo. >> %WINDIR%\system32\drivers\etc\hosts & echo 192.168.1.63 bs.ybj.com >> %WINDIR%\system32\drivers\etc\hosts
固然如许今后假如再换IP, 就要手动就改一下host文件了~ 假如偷懒改这个bat文件, 有追加一条新的同域名指向差别IP, 能够不会出题目, 也能够会致使每次接见页面卡20s摆布出来. 固然这里我们不斟酌文件修正权限的体系相干的题目~
其他思索一: ShadowRoot探究
关于修正当地历史记录的主意降生后, 我顺便在历史记录chrome://history/
中搜刮了一下192.168.1.51, 发明有两百多条, 我盘算将他们导出成文本替代(实在没什么意义), 但是我发明, 在Console面板里, 这个历史记录竟然没法经由过程一般的JS要领将一切的地点遍历输出, 经由过程视察Elements面板的DOM构造, 发明缘由在于这个#shadow-root (open)
这个节点内的DOM元素不能被直接获取到. 历来没有研讨过ShadowRoot的我懵逼了, MDN上查到, 它与主DOM树离开衬着, 那末此时我是不是有要领获取到DOM子树的根节点内的元素呢. 固然能够, 参考How to access elements under `shadow-root` at ‘chrome://downloads’ using jquery and selenium?, 本来有这个奇异的/deep/
. 因而试着写了一段:
const HISTORYITEMS = document.querySelectorAll('#history-app /deep/ #content /deep/ #history /deep/ #infinite-list /deep/ history-item /deep/ #title');
for (let i = 0; i < HISTORYITEMS.length; i++) {
let item = HISTORYITEMS[i];
let url = item.getAttribute('href');
let name = item.getAttribute('title');
console.log(`${i}: ${name}'的URL地点是${url}
`);
}
由于默许显现条数不会悉数显现出来, 所以能够需要手动转动至底部加载完成后实行.
其他思索二: 真的能够批量修正Chrome存储的历史记录值
厥后, 我照样抱以尝尝的主意去尝试着修正Chrome历史记录, 没想到竟然照样很轻易的. 确认及准备好以下事情:
- 我的体系Windows 10 64bit
- 我的Chrome版本63.0.3239.132(正式版本) (64 位)
- 下载HxD编辑东西, 直接下载, 装置并翻开软件
封闭Chrome浏览器, 并翻开用户个人设置相干文件的目次, (请修正对应的用户名whidy部份替代)
C:\Documents and Settings\whidy\Local Settings\Application Data\Google\Chrome\User Data\Default
备份好
History
,History-journal
,History Provider Cache
三个文件(防备误操作形成的Chrome损坏形成的丧失)
然后直接用HxD顺次翻开这三个文件, 运用编辑器的替代功用, 将192.168.1.51悉数替代为192.168.1.63, 保留.
完成后, 再次启动Chrome, 假如没有发生什么非常, 我想这个奇葩主意的功用就完成了. 我胜利的替代了280多条历史记录~