Google Chrome Extension - Accès aux DOM
-
20-09-2019 - |
Question
J'ai cherché sur le web pour savoir comment accéder au DOM courant des onglets pour extraire des informations sur une page du background.html. Jusqu'à présent, je n'ai pas eu de chance, ou du moins rien que je puisse faire fonctionner correctement.
Pour poser le problème simplement. Je voudrais obtenir src d'un iFrame sur la page. Toutes les suggestions?
La solution
Une façon, vous une gâterie cela comme une seule demande de temps pour le script de contenu qui ira chercher le dom vous souhaitez accéder. http://code.google.com/chrome/extensions/messaging.html#simple
En gros, votre script de contenu met en place l'auditeur:
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
else
sendResponse({}); // snub them.
});
Et votre page d'arrière-plan envoie une requête unique vécu:
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {greeting: "hello"}, function(response) {
console.log(response.farewell);
});
});
Lorsque vous envoyez votre réponse, vous l'envoyez en tant que données JSON, vous pouvez chercher tout ce que vous voulez (comme html, dom, texte, etc.).
C'est actuellement la seule façon de laisser la page d'arrière-plan rien savoir le contenu d'une page. Rappelez-vous que vous auriez besoin de scripts de contenu et les autorisations de l'onglet.