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

177
Views
No se puede acceder al documento en la nueva ventana abierta JS

Estoy tratando de obtener algunos datos de una página web y pasarlos a una nueva ventana e imprimirlos desde allí. Aquí está mi código:

 var print_btn; let win; document.getElementsByTagName('html')[0].innerHTML = document.getElementsByTagName('html')[0].innerHTML +"<button class=\"printbuton\">Print Button</button>"; print_btn = document.getElementsByClassName('printbuton')[0]; print_btn.onclick = function() { console.log("check 1"); var WinPrint = window.open('', '', 'left=0,top=0,width=384,height=900,toolbar=0,scrollbars=0,status=0'); console.log("check 2"); WinPrint.document.write('Print this'); console.log("check 3"); WinPrint.document.write('Print that'); WinPrint.document.write('and this'); console.log("button pushed"); }

Cuando intento esto, abre la nueva ventana, pero permanece vacía y en la consola registra solo "verificar 1" y "verificar 2". Probé que si i console.log(WinPrint) se muestra en la consola, pero si hago console.log(WinPrint.document) no muestra nada y el script se detiene allí.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Su código no funcionará debido a un error (XSS [Cross Site Scripting]) . Firefox le impide modificar el contenido de un dominio diferente.

Como está abriendo una nueva ventana, ahora tiene un nombre de dominio diferente (sobre: en blanco) al que comenzó.

Hay algunas maneras de hacer esto, lo que viene rápidamente a la mente sería usar la API window.create y usar parámetros de consulta para pasar los datos a la nueva ventana:

 function onCreated(windowInfo) { console.log('SUCCESS'); } function onError(error) { console.log(`Error: ${error}`); } print_btn.addEventListener('click', event => { var popupURL = browser.extension.getURL("popup/popup.html?line=blahblah&line2=loremipsum"); var creating = browser.windows.create({ url: popupURL, type: "popup", height: 200, width: 200 }); creating.then(onCreated, onError); });

O puede hacer algo más elaborado abriendo usando windows.create y luego usando runtime.sendmessage para pasar los mensajes de regreso al script de fondo y luego a la nueva ventana.

O probablemente podría inyectar una ventana emergente en la página y hacer algo similar.

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!