Aktualny kod dołącza przycisk, aby szybko wybrać kod w znaczniku <pre>
. Dodam tylko, że mogę skopiować tę zawartość do schowka i zmienić tekst przycisku na "skopiowany".Funkcja wyboru niestandardowego z kopią do schowka czystego JS
Jak mogę to osiągnąć, modyfikując obecny działający kod poniżej? Nie miałbym nic przeciwko korzystaniu ze schowka.js, bitów jQuery lub tylko natywnego wsparcia JS, ponieważ zostało wprowadzone od wersji Chrome 43. Po prostu nie wiem, jak to zrobić, dodając to, czego potrzebuję.
function selectPre(e) {
if (window.getSelection) {
var s = window.getSelection();
if (s.setBaseAndExtent) {
s.setBaseAndExtent(e, 0, e, e.innerText.length - 1);
}
else {
var r = document.createRange();
r.setStart(e.firstChild, 0);
r.setEnd(e.lastChild, e.lastChild.textContent.length);
s.removeAllRanges();
s.addRange(r);
}
}
else if (document.getSelection) {
var s = document.getSelection();
var r = document.createRange();
r.selectNodeContents(e);
s.removeAllRanges();
s.addRange(r);
}
else if (document.selection) {
var r = document.body.createTextRange();
r.moveToElementText(e);
r.select();
}
}
var diff = document.getElementById('diff_table').getElementsByTagName('tr');
var difflen = diff.length;
for(i=0; i<difflen; i++) {
var newdiff = diff[i].childNodes[1];
if (newdiff.className && (newdiff.className == 'added' || newdiff.className == 'modified')) {
newdiff.className += ' diff-select';
newdiff.innerHTML = '<div class="btnbox"><button class="btn btn-default btn-xs" onclick="selectPre(this.parentNode.nextSibling)">Select</button></div>' + newdiff.innerHTML;
}
}
Dodałem bounty. Proszę o pomoc :) – user2513846
Czy możesz dodać również pokrewną próbkę html? – rajuGT
Proszę dodać odpowiedni kod związany z rzeczywistą próbą użycia 'clipboard.js' lub jednego z innych rozwiązań, o których wspomniałeś. Teraz wygląda na to, że podałeś nam kod i poprosiłeś nas o wprowadzenie rozwiązania. – zero298