È possibile trasferire una stringa da uno già aperto la scheda ad un altro già aperto la scheda con una estensione di google Chrome?

0

Domanda

Bene, mi sono bloccato in questa domanda, perché io non so nemmeno da dove iniziare a cercare.

Qui è il problema che vorrei risolvere:

Vorrei automatizzare un processo che richiede di "copia-incolla" dei valori da un sito all'altro (con Url differenti) quindi vorrei fare un'estensione in cui posso individuare un nodo DOM e prendere il suo valore di testo e automaticamente inseriti in un textfield da un'altra pagina.

Ho cercato in Mozilla oficial documentazione e ha scoperto che le schede".sendMessage" potrebbe essere qualcosa che potrei usare, ma ho bisogno di schede.id e per quello che ho letto "di chrome.schede" sembra essere una proprietà solo da estensioni, quindi sto iniziando a pensare che forse non c'è modo di fare questo.

Vorrei imparare a fare questo, perché mi avrebbe un risparmio di ore da lavoro di routine che richiede per passare i dati da una scheda all'altra, ma cambiare un po di cose.

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

Migliore risposta

0

Grazie a @wOxxOm ho trovato un modo per ottenere attraverso questo problema, ecco la soluzione che ho fatto io:

Un'azione popup che inizia script della pagina da quello che sto prendendo le informazioni e il contenuto dello script che viene eseguito su una pagina di destinazione, qui è il manifesto.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"
  }
}

Qui è il javascript legato "popup.html" in che posso cambiare il cromo archiviazione variabile:

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 });
});

E qui è l'esecuzione di codice in contenuto di script per la seconda scheda:

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

  }
});

Spero che questo aiuta chiunque altro!

2021-11-22 19:10:38

In altre lingue

Questa pagina è in altre lingue

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