Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

547
Visualizações
Extensión de Chrome: TypeError no detectado: no se pueden establecer propiedades de indefinido (configurando 'innerHTML')

Estoy tratando de editar un lugar en un sitio web para mostrar texto. Lo probé en la consola de sitios web y todo funciona. me sale este error

TypeError no capturado: no se pueden establecer propiedades de indefinido (configurando 'innerHTML')

emergente.js

 let AnswerButton = document.getElementById("AnswerButton"); function ShowAnswers(answers) { var ans = JSON.parse(answers) var i = 0 let answersString = "" ans.props.multiChoice.forEach(answer => { answer.options.forEach(fanswer => { if (fanswer.correct == 1) { i += 1 answersString += `<p>[${i}] ${fanswer.option}</p>` } }) }) const collection = document.getElementsByClassName("text-gray-500 text-base"); collection[2].innerHTML = answersString } AnswerButton.addEventListener("click", () => { chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) { var pathArray = tabs[0].url.split('/'); var QuizNum = pathArray[5] if (tabs[0].url == `https://www.elearneconomics.com/student/multi-choice/${QuizNum}`) { var url = `https://www.elearneconomics.com/student/multi-choice/${QuizNum}`; var xhr = new XMLHttpRequest(); xhr.open("GET", url); xhr.setRequestHeader("authority", "www.elearneconomics.com"); xhr.setRequestHeader("method", "GET"); xhr.setRequestHeader("path", `/student/multi-choice/${QuizNum}`); xhr.setRequestHeader("scheme", "https"); xhr.setRequestHeader("accept", "text/html, application/xhtml+xml"); xhr.setRequestHeader("accept-language", "en-US,en;q=0.9,ja-JP;q=0.8,ja;q=0.7"); xhr.setRequestHeader("content-type", "application/json;charset=utf-8"); xhr.setRequestHeader("x-inertia", "true"); xhr.setRequestHeader("x-inertia-version", "17fd9f7cedd585a570d50ad58164bdf6"); xhr.setRequestHeader("x-requested-with", "XMLHttpRequest"); xhr.setRequestHeader("x-xsrf-token", "Some Token"); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { chrome.scripting.executeScript(tabs.id, { function: ShowAnswers(xhr.responseText) }); document.getElementById("Answers").innerHTML = "Scroll Down ;)"; } }; xhr.send(); } else { alert("Goto a multichoice section!") } }); });

Gracias con antelación por ayudar.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

  • El problema 1 es que llama a ShowAnswers, en lugar de hacer referencia a él, por lo que se ejecuta en el contexto de la página de extensión, no en la página web.

  • El problema 2 es que los parámetros de executeScript en ManifestV3 se especifican de manera diferente.

  • El problema 3 es que tabs es una matriz, por lo que tabs.id es nulo.

Para ver estos problemas, debe usar las herramientas de desarrollo correctas , por ejemplo, la ventana emergente es una ventana separada, por lo que tiene sus propias herramientas de desarrollo separadas, que puede abrir haciendo clic derecho dentro de la ventana emergente y seleccionando "inspeccionar" en el menú.

Arreglar:

 chrome.scripting.executeScript({ target: {tabId: tabs[0].id}, func: ShowAnswers, args: [xhr.responseText], });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda