点击按钮后无任何反映的bug需要优化代码button id=copy-button class=refresh-button复制buttonscriptconst copyButton = documentgetElementByIdcopy-button;const responseTextarea = documentgetElementByIdchatgpt-response;if resp
<p>可能的原因是responseTextarea元素不存在,需要先判断元素是否存在,再进行事件监听和操作。</p>
<p>改进后的代码如下:</p>
<p><button id="copy-button" class="refresh-button">复制</button></p>
<script>
const copyButton = document.getElementById('copy-button');
const responseTextarea = document.getElementById('chatgpt-response');
if (copyButton && responseTextarea) {
copyButton.addEventListener('click', () => {
responseTextarea.select();
document.execCommand('copy');
showCopySuccess(); // 添加复制成功提示
});
// 检测浏览器是否支持 execCommand
if (!document.queryCommandSupported('copy')) {
copyButton.style.display = 'none';
}
// 添加复制成功提示
function showCopySuccess() {
const successMessage = document.createElement('div');
successMessage.innerText = '复制成功!';
successMessage.style.position = 'fixed';
successMessage.style.top = '10px';
successMessage.style.right = '10px';
successMessage.style.backgroundColor = '#4CAF50';
successMessage.style.color = 'white';
successMessage.style.padding = '10px';
successMessage.style.borderRadius = '5px';
document.body.appendChild(successMessage);
setTimeout(() => {
successMessage.remove();
}, 2000);
}
responseTextarea.addEventListener('copy', (event) => {
// 阻止默认行为
event.preventDefault();
if (event.clipboardData) {
event.clipboardData.setData('text/plain', responseTextarea.value);
}
});
}
</script>
原文地址: https://www.cveoy.top/t/topic/14I 著作权归作者所有。请勿转载和采集!