目录
背景工具脚本操作总结
背景
使用 Windows 复制浏览器内容到 OneNote / Typora 等笔记工具时,会同时生成内容 url 地址。而 Mac 则缺失了此功能,原因是 Windows 的剪贴板会附带浏览器地址来源,而Mac 只针对 Safari 提供此功能,OneNote 干脆统一没支持 (╯‵□′)╯︵┴─┴ 而作为 Chrome 重度使用患者,在经历了无数次 手动复制文本 → 返回浏览器 → 复制地址,和寻求插件未果后,终于趁着国庆肥宅期自己造轮子了,撒花 ✿ ҉٩(´︶`)۶҉ ✿??
工具
项目名称备注
操作系统MacWindows / Linux 应该也可以,按注释修改快捷键即可,未做兼容性测试浏览器Chrome基于 Chrumium 内核应该都可以,未做兼容性测试Chrome 插件TamperMonkey语言JavaScript
脚本
(function() {
'use strict';
document
.addEventListener(
"keydown",
event
=> {
const keyName
= event
.key
;
if (keyName
== "c" && event
.ctrlKey
) {
} else if (keyName
== "g" && event
.metaKey
) {
event
.preventDefault();
copyWithTextAndUrl();
}
},
false
);
function copyWithTextAndUrl() {
var title
= document
.title
;
var url
= document
.location
.href
;
var urlHtml
= `<p id="urlSuffixEle"><a href="${url}">${title}</a></p>`;
insertHtmlAfterSelection(urlHtml
);
document
.execCommand("copy");
console
.log(urlHtml
);
removeElement("urlSuffixEle");
}
function insertHtmlAfterSelection(html
) {
var sel
, range
, expandedSelRange
, node
;
if (window
.getSelection
) {
sel
= window
.getSelection();
if (sel
.getRangeAt
&& sel
.rangeCount
) {
range
= window
.getSelection().getRangeAt(0);
expandedSelRange
= range
.cloneRange();
range
.collapse(false);
var el
= document
.createElement("div");
el
.innerHTML
= html
;
var frag
= document
.createDocumentFragment(), lastNode
;
while ((node
= el
.firstChild
)) {
lastNode
= frag
.appendChild(node
);
}
range
.insertNode(frag
);
if (lastNode
) {
expandedSelRange
.setEndAfter(lastNode
);
sel
.removeAllRanges();
sel
.addRange(expandedSelRange
);
}
}
} else if (document
.selection
&& document
.selection
.createRange
) {
range
= document
.selection
.createRange();
expandedSelRange
= range
.duplicate();
range
.collapse(false);
range
.pasteHTML(html
);
expandedSelRange
.setEndPoint("EndToEnd", range
);
expandedSelRange
.select();
}
}
function removeElement(id
) {
var ele
= document
.getElementById(id
);
return ele
.parentNode
.removeChild(ele
);
}
})();
操作
既然会看此文章,那应该至少已经使用 Chrome 了,因此主要介绍以下流程:
安装油猴安装脚本 / 复制脚本内容自行添加新脚本如需兼容或更改快捷键,可打开管理面版 自行修改欢迎评论或前往 Greasy Fork 交流
总结
祝用餐?愉快,希望此脚本能帮你提升效率 φ(≧ω≦*)♪
开源这种事,只有第一次和无数次,vv 好自为之 (,•́ . •̀,)
Mac Chrome 不支持复制内容时附带 URL ↩︎
TamperMonkey ↩︎
Greasy Fork: Copy With Title and Text ↩︎