您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Allows you to click Japanese sentences and their translations to copy them to clipboard.
当前为
// ==UserScript== // @name Bunpro: Copy Sentences // @namespace http://tampermonkey.net/ // @version 0.1.1 // @description Allows you to click Japanese sentences and their translations to copy them to clipboard. // @author Kumirei // @include https://bunpro.jp/* // @require https://gf.qytechs.cn/scripts/5392-waitforkeyelements/code/WaitForKeyElements.js?version=115012 // @grant none // ==/UserScript== (function() { waitForKeyElements('body', function(e) { e.on('click', function(e) { //reviews if ($(e.target).closest('div')[0] == null) copyText($('div[class^="study-question-english"] > span')[0].innerText); //english in review is a special case else if ($(e.target.closest('div'))[0].className == "study-question-japanese") copyText(parseSentence($(e.target.closest('div > span'))[0])); //japanese in reviews //english example sentences else if (["english-example-sentence", "example-sentence-english"].includes(e.target.className)) copyText(e.target.innerText); else if (["english-example-sentence", "example-sentence-english"].includes(e.target.parentNode.className)) copyText(e.target.parentNode.innerText); //japanese example sentences else if (e.target.className == "japanese-example-sentence") copyText(parseSentence(e.target)); else if ($(e.target).closest('li')[0] != undefined && $(e.target).closest('li')[0].className == "japanese-example-sentence") copyText(parseSentence($(e.target).closest('li')[0])); }); }); //Extracts the sentence from the sentence element function parseSentence(sentenceElem) { var sentence = ""; sentenceElem.childNodes.forEach(function(elem) { // find the text in each kind of element and append it to the sentence string var name = elem.nodeName; if (name == "#text") { sentence += elem.data; } else if (name == "STRONG" || name == "SPAN") { if (name == "STRONG" && elem.children.length) { sentence += elem.children[0].childNodes[0].data; // with kanji in string //sentence += elem.children[0].children[1].innerText; // with kana in string } else { sentence += elem.innerText; } } else if (name == "RUBY") { sentence += elem.childNodes[0].data; // with kanji in string //sentence += elem.children[1].innerText; // with kana in string } }); return sentence; } //copies the text var copyText = function (text) { var textArea = document.createElement("textarea"); textArea.style.position = 'fixed'; textArea.style.top = 0; textArea.style.left = 0; textArea.style.width = '2em'; textArea.style.height = '2em'; textArea.style.padding = 0; textArea.style.border = 'none'; textArea.style.outline = 'none'; textArea.style.boxShadow = 'none'; textArea.style.background = 'transparent'; textArea.value = text; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { var successful = document.execCommand('copy'); var msg = successful ? 'successful' : 'unsuccessful'; console.log('Copying text command was ' + msg); console.log('Copied Sentence:', text); } catch (err) { console.log('Oops, unable to copy'); } document.body.removeChild(textArea); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址