Este posibil pentru a transfera un șir de caractere de la unul deja deschis filă la alta deja deschis tab-ul cu o extensie Chrome?

0

Problema

Ei bine, eu sunt blocat în această întrebare pentru că eu nici măcar nu știu de unde să încep să caut.

Aici este problema vreau sa rezolv:

Aș dori pentru a automatiza un proces care necesită "copy-paste" valori de la un site la altul (cu Url-uri diferite), astfel încât aș dori să fac o extensie în care pot localiza un nod DOM și ia o valoare text și în mod automat a pus într-un textfield la o altă pagină.

Am căutat în Mozilla oficial de documentare și a constatat că "file.sendMessage" ar putea fi ceva ce as putea folosi, dar am nevoie de file.id-ul și pentru ce-am citit "chrome.file" pare a fi o proprietate numai de extensii, astfel încât încep să cred că poate nu există nici o modalitate de a face acest lucru.

Aș dori să învețe cum să facă acest lucru pentru că mi-ar salva de ore de locuri de muncă de rutină care necesită de a trece de date de la o filă la alta, dar schimba unele lucruri.

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

Cel mai bun răspuns

0

Datorită @azazello am găsit o modalitate de a trece peste această problemă, aici este soluția la care ajung:

O acțiune de tip pop-up care începe script pe pagina de ceea ce iau informațiile și conținutul script care ruleaza pe pagina de destinație, aici este manifest.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"
  }
}

Aici este javascript legate de "popup.html" în ceea ce am schimba chrome de stocare variabilă:

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

Și aici este codul in script conținut pentru cel de-al doilea tab:

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

  }
});

Sper că acest lucru ajută oricine altcineva!

2021-11-22 19:10:38

În alte limbi

Această pagină este în alte limbi

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