Je možné převést řetězec z jednoho již otevřít kartu do jiného již otevřen tab s Chrome extension?

0

Otázka

No, já jsem uvízl v této otázce, protože já ani nevím, kde začít hledat.

Tady je ten problém chci řešit:

Rád bych, aby automatizovat nějaký proces, který vyžaduje "copy-paste" hodnoty z jednoho serveru na jiný (s jinou Url) tak bych chtěl udělat prodloužení, ve kterém můžete najít DOM uzel a vzít jeho textovou hodnotu a automaticky dát do textového pole z jiné stránky.

Hledal jsem v Mozilla oficial dokumentaci a zjistil, že "karty.sendMessage" by mohlo být něco, co bych mohl použít, ale potřebuji karet.id a pro to, co jsem četl "chrome.karty" se zdá být vlastnost pouze z rozšíření, tak si začínám myslet, že to možná není žádný způsob, jak to udělat.

Chtěl bych se dozvědět, jak to udělat, protože by mě zachránil hodin od rutinní práce, která vyžaduje, aby se předávání dat z jedné karty na jinou se ale změnit některé věci.

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

Nejlepší odpověď

0

Díky @wOxxOm jsem našel způsob, jak se dostat trought tento problém, zde je řešení, které jsem dostal:

Akční okno, které se spustí skript na stránce, z toho, co beru informace a obsah skript, který běží na cílovou stránku, zde je manifestu.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"
  }
}

Zde je javascript souvisí s "popup.html" ve kterém jsem se změnit chrome skladování proměnné:

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

A tady je spuštění kódu ve skriptu obsahu pro druhé záložce:

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

  }
});

Doufám, že to pomůže někdo jiný!

2021-11-22 19:10:38

V jiných jazycích

Tato stránka je v jiných jazycích

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