Est-il possible de transférer une chaîne à partir d'un onglet déjà ouvert un autre onglet déjà ouvert avec une extension Chrome?

0

La question

Eh bien, je suis coincé dans cette question, parce que je ne sais même pas par où commencer à chercher.

Voici le problème que je veux résoudre:

Je voudrais automatiser certains processus qui exige un "copier-coller" des valeurs à partir d'un site à l'autre (avec des Url différentes) donc je voudrais faire une extension à laquelle je puisse localiser un nœud DOM et sa valeur de texte et de mettre automatiquement dans un champ de texte à partir d'une autre page.

J'ai cherché dans Mozilla oficial de la documentation et a constaté que les "onglets.sendMessage" pourrait être quelque chose que je pourrais utiliser, mais j'ai besoin de les onglets.id et pour ce que j'ai lu "de chrome.les onglets" semble être une propriété uniquement à partir des extensions, donc je commence à penser que peut-être il n'y a aucun moyen de le faire.

Je voudrais savoir comment le faire parce que Cela me sauver des heures de la routine de travail qui nécessite de passer des données à partir d'un onglet à l'autre, mais de changer certaines choses.

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

La meilleure réponse

0

Grâce à @wOxxOm j'ai trouvé un moyen d'obtenir trought ce problème, voici la solution que j'obtiens:

Une action popup qui commence script sur la page à partir de ce que je suis à la prise de l'information et un contenu de script qui s'exécute sur la page de destination, ici, est le manifeste.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"
  }
}

Voici le javascript liées à la "popup.html" en qui j'ai changer le chrome de stockage 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 });
});

Et voici le code en cours d'exécution dans le script de contenu pour la deuxième onglet:

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

  }
});

J'espère que cela aide quelqu'un d'autre!

2021-11-22 19:10:38

Dans d'autres langues

Cette page est dans d'autres langues

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