Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

535
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!