Javascript, Recherche de caractère et remplacement

Résolu/Fermé
Tosh94
Messages postés
21
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
22 décembre 2016
- Modifié par Tosh94 le 21/12/2016 à 19:05
Tosh94
Messages postés
21
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
22 décembre 2016
- 22 déc. 2016 à 10:30
Bonjour,

Je voudrais que mon script Javascript ( sur un site sharepoint) puisse faire une recherche dans ma page html et remplacer une balise.

Par exemple j'ai :

<div class="description">
<div class="ExternalclassXX>
TEXTE
</div>
</div>


Et je veux ajouter les balises <html> et </html> au début et à la fin pour que ça devienne :


<html>
<div class="description">
<div class="ExternalclassXX>
TEXTE
</div>
</div>
</html>


Je pensais un truc du genre :
Chercher

<div class="description">
<div class="External"
"

et remplacer par :

<html>
<div class="description">
<div class="External"


et même chose pour la fin.

Cordialement,

1 réponse

Salut,

Si une page ne contient pas l'élément HTML elle est invalide.
Cela la rends fausse et bien sûr difficile à manipuler.
A partir du moment où vous avez la balise <html> dans votre page vous avez une page et pouvez ommencer à l'utiliser.
Le fait que ça fonctionne sans est une facilité mais implique un problème de sécurité.
On peut publier(et même afficher) une page qui est fausse et n'a pas la construction nécessaire.
Avant JavaScript commencez par apprendre HTML.

Sinon pour manipuler un élément vous avez le DOM qui permet d'agir sur les éléments de la page en HTML(donc pour cela il faudra avant tout une page HTML valide;) ).

Par exemple en JavaScript pur vous pouvez repérer les éléments(balises et autres) de la page par leur ordre hiérarchique, par leur classe, par leur identifiant etc...et changer leurs attributs, contenus ou autres valeurs.
On peut aussi créer dynamiquement des éléments dans la page puis les insérer où on le désire.

Autre remarque de nos jours évitez les balises DIV pour les remplacer par <section> et <article> ayant une vrai valeur sémantique et étant un critère important de la page(référencement et description des contenus de la page précis où le DIV indique simplement que c'est une partie de la page).


Une fois maîtrisé HTML , CSS vous pouvez utiliser JavaScript pour les manipuler ( je veux dire qu'il est inutile de manipuler ce qu'on ne comprends pas! ).

Pour reprendre votre exemple en JQuery on peut écrire ceci:


$('body').html($('div').html('TEXTE').attr('class','ExternalclasXX'));

Ce qui reviendra à ce que vous avez écrit mais en plus rapide et simple à lire que du pur JavaScript. Je vous donne cet exemple car il à plusieurs avantages:
_Facilité, rapidité et simplicité à écrire: Remplacer TOUT Le contenu HTML par un DIV qui a pour contenu TEXTE et pour classe ExternalclassXX
_SURTOUT pour vous montrer que les sélecteurs(d'élément de la page) s'appuient COMPLÉTEMENT sur la structure HTML(assez simple un enfant de 10 ans l'apprends en une heure). Donc il faut respecter cette structure.
Prenons l'exemple dans le détail
$('body').html(ARGUMENTS)


signifie pour le body(corps) de la page HTML remplace le contenu HTML.
Le body(corps de la page) étant tout le contenu affiché on remplace donc tout ce contenu par la valeur ARGUMENTS.
Mais comment un programme peut remplace quelque chose qui n'existe pas?
Dans votre écriture vous oubliez :
l'élément HTML <html> indiquant le début d'une page HTML.
l'élément HTML <body> indiquant le début du corps de la page(qui doit absolument être précédé par l'élément <head> contenant les informations relatives à la page(styles CSS, langue de la page, encodage des caractères, titre, description du contenu...).


Concrètement pour changer une valeur d'un attribut de balise HTML en JavaScript(oubliez JQuery c'est une bibliothèque JavaScript donc nécessite d'abord de comprendre JavaScript):

avec [element].setAttrribute vous changez la valeur d'un attribut.

http://www.w3schools.com/xml/met_element_setattribute.asp

Encore faut il savoir ce qu'est un attribut d'élément HTML et quand je vois autant d'erreurs ( omission de <html><head> et <body> ! utilisation de <div> quand il faudrait <section> et <article> avec son titre(<Hn>), absence de DOCTYPE html...) toutes concernant les bases les plus triviales des ages web je me demande si vous savez ce qu'exprime les attributs(de balise) HTML.

Commencez donc par cela:

https://www.google.fr/search?q=apprendre+HTML
1
Tosh94
Messages postés
21
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
22 décembre 2016

Modifié par Tosh94 le 22/12/2016 à 10:40
Je connais le HTML et je travaille sous Sharepoint.
Ma page est déjà codé en HTML cependant, j'ai utilisé une fonction que me propose déjà SharePoint permettant de recuperer des informations venant d'un autre site web en javascript. Cependant il me le récupère comme suit comme texte et non comme du code html :


<div class="ExternalClassB11A9321B6A245BB88ED1835E38FE763">
<p>Une phrase quelconque</p>
</div>


Idéalement, je voudrais que ma fonction comprenne que c'est du HTML et non du texte.

Et lorsque je regarde dans la source de la page F12 j'ai :
<div class="description>
     <div class="ExternalClassB11A9321B6A245BB88ED1835E38FE763">    
          <p>Une phrase quelconque​</p>
     </div>
</div>


avec comme texte :
 
<div class="ExternalClassB11A9321B6A245BB88ED1835E38FE763">
<p>Une phrase quelconque</p>
</div>


et non pas "Une phrase quelconque"

Lorsque je modifie la source (F12) et que je rajoute <html></html> pour la div intérieur, ça fonctionne.
<div class="description>
     <html><div class="ExternalClassB11A9321B6A245BB88ED1835E38FE763">    
          <p>Une phrase quelconque​</p>
     </div><html>
</div>


D'où ma question :
Comment faire pour le transformer en code HTML. Je n'ai pas qu'1 élément mais plusieurs élément à convertir.


Dans le doute je vous met des liens de screens, je ne sais pas si c'est autorisé.
https://prnt.sc/dmj3gb
https://prnt.sc/dmj3js
0