aboutsummaryrefslogtreecommitdiff
path: root/yomichan-user/conf.d/word-export.js
diff options
context:
space:
mode:
Diffstat (limited to 'yomichan-user/conf.d/word-export.js')
-rw-r--r--yomichan-user/conf.d/word-export.js15
1 files changed, 12 insertions, 3 deletions
diff --git a/yomichan-user/conf.d/word-export.js b/yomichan-user/conf.d/word-export.js
index cbaece4..de036e4 100644
--- a/yomichan-user/conf.d/word-export.js
+++ b/yomichan-user/conf.d/word-export.js
@@ -1,5 +1,4 @@
-function exportWord() {
- var entry = this.parentNode.parentNode.parentNode;
+function exportWord(entry) {
var wordElement = entry.getElementsByClassName("headword-term")[0];
var hasKanji = false;
@@ -44,18 +43,23 @@ function exportWord() {
function addWordCopyButtons() {
var definitions = document.getElementById("dictionary-entries").getElementsByClassName("entry");
for (var definition of definitions) {
+ if (definition.classList.contains("patched")) continue;
var actions = definition.getElementsByClassName("actions")[0];
var button = document.createElement("button");
button.classList.add("action-button");
- button.onclick = exportWord;
+ button.onclick = function() { exportWord(this.parentElement.parentElement.parentElement); };
var icon = document.createElement("span");
+ var title = "Copy definition (Alt + C)";
icon.classList.add("icon");
icon.classList.add("color-icon");
icon.classList.add("action-icon");
icon.setAttribute("data-icon", "copy-bmp");
+ icon.setAttribute("title", title);
+ icon.setAttribute("data-title-default", title);
button.appendChild(icon);
actions.insertBefore(button, actions.childNodes[0]);
+ definition.classList.add("patched");
}
}
@@ -65,4 +69,9 @@ function addWordCopyButtons() {
if (ev.data.action == "renderMulti.response")
addWordCopyButtons();
});
+ window.addEventListener("keydown", ev => {
+ if (ev.key != "c") return;
+ if (ev.altKey != true) return;
+ exportWord(document.getElementsByClassName("entry-current")[0]);
+ });
})();