首页 > 解决方案 > 使用 replit 托管的错误

问题描述

我创建了一个打字网站,可以提高打字的准确性和速度,但它是我计算机上的文件并在本地访问它,我试图将它们放到 replit 上,所有文件都在我的计算机上正常工作,但 script.js 文件没有'似乎没有阅读,并且其中存在错误,例如:

ReferenceError: quoteInputElement is not defined
    at /script.js:2:1
ReferenceError: quoteInputElement is not defined
    at /script.js:2:1

SyntaxError: Identifier 'RANDOM_QUOTE_API_URL' has already been declared
    at /script.js:1:1
   

这是我在 js 文件中的代码:


const RANDOM_QUOTE_API_URL = 'http://api.quotable.io/random'
const quoteDisplayElement = document.getElementById('quoteDisplay')
const quoteInputElement = document.getElementById('quoteInput')
const timerElement = document.getElementById('timer')

quoteInputElement.addEventListener('input', () => {
  const arrayQuote = quoteDisplayElement.querySelectorAll('span')
  const arrayValue = quoteInputElement.value.split('')

  let correct = true
  arrayQuote.forEach((characterSpan, index) => {
    const character = arrayValue[index]
    if (character == null) {
      characterSpan.classList.remove('correct')
      characterSpan.classList.remove('incorrect')
      correct = false
    } else if (character === characterSpan.innerText) {
      characterSpan.classList.add('correct')
      characterSpan.classList.remove('incorrect')
    } else {
      characterSpan.classList.remove('correct')
      characterSpan.classList.add('incorrect')
      correct = false
    }
  })

  if (correct) renderNewQuote()
})

function getRandomQuote() {
  return fetch(RANDOM_QUOTE_API_URL)
    .then(response => response.json())
    .then(data => data.content)
}

async function renderNewQuote() {
  const quote = await getRandomQuote()
  quoteDisplayElement.innerHTML = ''
  quote.split('').forEach(character => {
    const characterSpan = document.createElement('span')
    characterSpan.innerText = character
    quoteDisplayElement.appendChild(characterSpan)
  })
  quoteInputElement.value = null
  startTimer()
}

let startTime
function startTimer() {
  timerElement.innerText = 0
  startTime = new Date()
  setInterval(() => {
    timer.innerText = getTimerTime()
  }, 1000)
}

function getTimerTime() {
  return Math.floor((new Date() - startTime) / 1000)
}

renderNewQuote()


在我的电脑上一切正常,但无法弄清楚为什么会这样。请帮帮我,谢谢!

标签: javascripthtmlcssrepl.it

解决方案


推荐阅读