嘿,我是一位新开发人员,正在尝试建立一个网站。网站的主要目标是向访问者提供一段文字。我的一些帮手给了我一个JavaScript,用于在<p></p>
元素内复制文本。但这不起作用。<p></p>
单击按钮时不会复制内的文本。以某种方式,如果您知道答案,请使用我的常量,有效值和其他值。我的Javascript
var buttons = document.getElementsByClassName('copystatus');
for (let button of buttons) {
button.addEventListener('click', function() {
let statusElement = this.closest('.latestatus');
let textToCopy = statusElement.getElementsByClassName('copytxt')[0].innerHTML;
copyTextToClipboard(textToCopy);
addCopyStatusAlert(this.parentNode);
});
}
function copyTextToClipboard(text) {
const copyText = document.createElement('textarea');
copyText.style.position="absolute";
copyText.style.display="none";
copyText.value = text;
document.body.appendChild(copyText);
copyText.select();
document.execCommand('copy');
document.body.removeChild(copyText);
}
function addCopyStatusAlert(element) {
if (!element.getElementsByClassName('status-copy-alert').length) {
let copyAlertElement = document.createElement('span');
copyAlertElement.classList.add('status-copy-alert')
let copyMessage = document.createTextNode('Copied!');
copyAlertElement.appendChild(copyMessage);
element.appendChild(copyAlertElement);
setTimeout(function() {
element.removeChild(copyAlertElement);
}, 700);
}
}
我的HTML
<div class="mainStatus">
<h2 class="statusHeading">Latest English Status</h2>
<div class="allStatus">
<div class="bock">
<div class="latestatus">
<p class="copytxt">Life is good when you have books</p>
<div>
<button class="copystatus btn">Copy</button>
</div>
</div>
<div class="latestatus">
<p class="copytxt">Google is an open source library by Larry Page and Sergey Brin!</p>
<div>
<button class="copystatus btn">Copy</button>
</div>
</div>
</div>
<div class="block">
<div class="latestatus">
<p class="copytxt">Cats are better than dogs.</p>
<div>
<button class="copystatus btn">Copy</button>
</div>
</div>
<div class="latestatus">
<p class="copytxt">Cats are better than dogs.</p>
<div>
<button class="copystatus btn">Copy</button>
</div>
</div>
</div>
</div>
</div>
请优化代码,以便在<p></p>
单击相应按钮时可以复制元素内部的文本。
另外,任何人都可以修改上面的代码,这样我就不需要为<p></p>
。(可选)重复讲课。
您需要将文本绘制到屏幕上,以便可以选择它,尝试删除copyText.style.display="none";
,或用另一种方法替换它,例如:
copyText.style.left="-99999px";
copyText.style.zIndex="99999";
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句