Comment puis-je ajouter du code HTML à la page chargée si le titre de la page contient un texte spécifique?
Les extensions Chrome sont de nouvelles bases pour moi et votre aide serait grandement appréciée.
Vous pouvez prendre le code suivant comme référence pour ajouter du code HTML.
manifest.json
Ce fichier enregistre le script de contenu en extension.
{
"name":"Inject DOM",
"description":"http://stackoverflow.com/questions/14068879",
"version":"1",
"manifest_version":2,
"content_scripts": [
{
"matches": ["http://www.google.co.in/*","https://www.google.co.in/*"],
"js": ["myscript.js"]
}
]
}
myscript.js
Un script trivial pour ajouter un bouton à la page Google
// Checking page title
if (document.title.indexOf("Google") != -1) {
//Creating Elements
var btn = document.createElement("BUTTON")
var t = document.createTextNode("CLICK ME");
btn.appendChild(t);
//Appending to DOM
document.body.appendChild(btn);
}
Output
Vous voyez un bouton ajouté à la page souhaitée
La réponse de @Sudarshan explique la spécificité des pages, super, mais qu'en est-il des commentaires ajoutés? voici comment faire ce qu'il a manqué de manière plus pratique et plus simple. Pour modifier le contenu existant ou créer du contenu sur une page, la méthode la plus simple serait:
Modifier
modification d'article unique:
document.getElementById("Id").innerHtml = this.innerHtml + "<some code here>";
ou pour modifier les attributs:
document.getElementById("Id").class = "classname";
//or ->
document.getElementById("Id").style.color = "#a1b2c3";
pour ajouter plusieurs lignes de code, procédez comme suit:
document.getElementById("Id").innerHtml = this.innerHtml + `
<some code here> <!-- Line 1 -->
and we're on multiple lines!` + "variables can be inserted too!" + ` <!-- Line 2 -->
<this code will be inserted directly **AS IS** into the DOM <!-- Line 3 -->
`
;
Créer
injection de code volumineux (exemple d'un projet de codage effectué il y a longtemps) voir insertAdjacentHtml API :
var bod = document.getElementsByTagName('body')[0];
bod.insertAdjacentHTML('afterbegin', `
<div class="Boingy" id="Boingy">
<div class="Boihead" id="BoiHead">
<div class="deXBox" id="deXBox">
<div class="Tr-Bl_Button" style="height: 25px;width: 2px;margin-left: 11.65px;background-color: gray;transform: rotate(45deg);-ms-transform: rotate(45deg);-webkit-transform: rotate(45deg);Z-index: 1;">
<div class="Tl-Br_Button" style="height: 25px;width: 2px;background-color: gray;transform: rotate(90deg);-ms-transform: rotate(90deg);-webkit-transform: rotate(90deg);Z-index: 2;">
</div>
</div>
</div>
</div>
<embed id="IframeThingyA" src="` + "url" + `" type="text/html">
</embed>
</div>
`);
références: