<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>
点击按钮后无任何反映的bug需要优化代码button id=copy-button class=refresh-button复制buttonscriptconst copyButton = documentgetElementByIdcopy-button;const responseTextarea = documentgetElementByIdchatgpt-response;if resp

原文地址: https://www.cveoy.top/t/topic/14I 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录