Es posible la transferencia de una cadena a partir de uno ya abierto pestaña a otra ya abierta una pestaña con una extensión de Chrome?

0

Pregunta

Bien, estoy atascado en este asunto, porque yo no sé ni por dónde empezar a buscar.

Aquí está el problema que queremos resolver:

Me gustaría automatizar algún proceso que requiere de "copiar-pegar" los valores de un sitio a otro (con diferentes Url), así que me gustaría hacer una extensión en la que me puedo localizar un nodo DOM y tomar su valor de texto y automáticamente se pone en un campo de texto de otra página.

He buscado en Mozilla oficial de la documentación y encontró que "las pestañas.sendMessage" podría ser algo que yo podría usar, pero tengo la necesidad de pestañas.id y por lo que he leído de chrome".pestañas" parece ser una propiedad única de las extensiones, así que estoy empezando a pensar que tal vez no hay manera de hacer esto.

Me gustaría aprender a hacer esto porque me ahorraría horas de trabajo rutinario que requiere para pasar los datos de una ficha a otra, pero cambiar algunas cosas.

google-chrome-extension
2021-11-18 00:58:34
1

Mejor respuesta

0

Gracias a @wOxxOm he encontrado una manera de conseguir a este problema, aquí está la solución que me sale:

Una acción emergente que comienza el script en la página de lo que yo estoy tomando la información y el contenido del script que se ejecuta en la página de destino, aquí está el manifiesto.json:

{
  "name": "autofill",
  "description": "Writes info from one tab to another",
  "version": "1.0",
  "manifest_version": 3,
  "background": {
    "service_worker": "first-page-background.js"
  },
  "permissions": ["storage", "activeTab", "scripting"],
  "content_scripts": [
    {
      "matches": ["https://second-tab.com/"],
      "js": ["second-tap-content.js"]
    }
  ],
  "action": {
    "default_popup": "popup.html"
  }
}

Aquí es el javascript vinculada a la "popup.html" en que puedo cambiar el chrome de almacenamiento variable:

document
.querySelector('xpath_to_element_i_want_trigger_action') 
.addEventListener('click', () => {
  let data = document.querySelector(
    'xpath_to_data'
  ).innerText;
  chrome.storage.sync.set({ form_data: data });
});

Y aquí está la ejecución de código en el script de contenido para la segunda pestaña:

chrome.storage.onChanged.addListener(function (changes) {
  for (let [key, { oldValue, newValue }] of Object.entries(changes)) {
    
    let searchBox = document.querySelector("#id_in_form)

    searchBox.innerHTML = newValue

  }
});

Espero que esto ayude a alguien más!

2021-11-22 19:10:38

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................