J'ai recherché comment accomplir cette tâche. Je l'ai trouvé quelques articles plus particulièrementAccès à l'objet DOM de l'onglet en cours à partir d'une extension Chrome
Accessing Current Tab DOM Object from "popup.html"?
Cependant, je suis très nouveau pour JavaScript et faire des extensions de chrome et je l'ai frappé une impasse. Je suppose que la réponse n'est pas reçue, ce qui explique pourquoi document.write("Hellp")
ne fonctionne pas. Toute aide pour résoudre ce problème serait appréciée.
J'ai trois fichiers principaux
de manifest.json
{
"name": "My First Extension",
"version": "1.0",
"description": "The first extension that I made.",
"browser_action":
{
"default_icon": "icon.png",
"popup": "popup.html"
},
"permissions":
[
"tabs"
],
"content_scripts":
[{
"matches": ["<all_urls>"],
"js": ["dom.js"]
}]
}
de popup.html
<html>
<body>
</body>
<script>
chrome.tabs.getSelected(null, function(tab)
{
// Send a request to the content script.
chrome.tabs.sendRequest(tab.id, {action: "getDOM"}, function(response)
{
document.write("Hello");
document.write(response.title)
});
});
</script>
</html>
dom.js
chrome.extension.onRequest.addListener(function(request, sender, sendResponse)
{
if (request.action == "getDOM")
sendResponse({dom: document.getElementsByTagName("body")[0]});
else
sendResponse({}); // Send nothing..
});
En fait, les objets DOM ne peut pas être envoyé car ils ne sont pas [en série JSON] (https://developer.chrome.com/extensions/messaging#simple). –
Alors, comment pouvons-nous obtenir des éléments DOM à la [email protected] – Despertaweb
@Despertaweb Ça fait un an que je l'ai écrit et j'ai honnêtement oublié cette partie de mon projet. Eh bien, je pense que j'avais réussi soit en utilisant une page d'arrière-plan ou en envoyant innerHTML, et en utilisant une sorte de drapeaux globaux pour coordonner les scripts de contenu en noir et blanc et la page d'arrière-plan. Désolé d'être si peu informatif! –