从Google Chrome地址栏复制hostname时去除http:// 前缀
从很早之前的某个版本开始,Google Chrome的地址栏的URL不再显示"http://", 但是当我想复制域名时,在地址栏选中域名部分,按Command+C复制,剪贴板里的内容会自动加上"http://"。
于是我把域名贴到命令行里执行的时候,经常是这样的场景
oylbin@ouyangs-MacBook-Air:~ (Window: ) >
> ping http://www.qq.com/
ping: cannot resolve http://www.qq.com/: Unknown host
这个困扰了我好多年啊,今天终于忍不住了,上网搜搜有没有解决方案。
很多人受此困扰,reddit上有人说他每次复制域名时故意不选中第一个字符,这样复制时,就只有选中部分的文本内容了,然后贴到命令行时自己先手敲没有被复制的那一个字符,哈哈,这跟我平时操作一样嘛。。。
搜了一下没有找到解决方案,倒是看到有人写了一个Chrome extension来专门做这个事情。可惜网速不好,这个扩展半天没下载成功,看了一下扩展大小,2.66MB,就无语了,这么个鸟功能,怎么可能要这么大。
这个需求也不复杂,javascript也能通过window.location.hostname
读到hostname,如果能通过javascript将文本复制到系统剪贴板,那做个Bookmarklet就搞定了啊。
搜了一下,Chrome里确实可以通过document.execCommand('Copy');
执行复制命令,所以有了如下的解决方案。
在地址栏新建一个书签,取名为“GetHostname”,在URL部分粘贴如下javascript代码:
javascript:(function(){
function executeCopy(text) {
var input = document.createElement('textarea');
document.body.appendChild(input);
input.value = text;
input.focus();
input.select();
document.execCommand('Copy');
input.remove();
}
executeCopy(window.location.hostname);
})();
然后也去superuser.com上分享了一下,希望能帮到同样有这个困扰的人。
Last modified on 2016-09-03