11486 sujets

JavaScript, DOM et API Web HTML5

Bonjour j'ai un problème lors du rendu du markdown de ma page. J'aimerais mettre en page le markdown avec la libraries Showdown.js

Voici mon documents html.


<body>
    <div style="display:none" id="source"></div>
    <div id="rendered"></div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/showdown/1.8.6/showdown.js"></script>

        $.get("https://raw.githubusercontent.com/MattixNow/usefultools/master/README.md", function (gh) {
            $("#md").text(gh);

        });

        function parse() { // ????? C'est ici que ça bloque ?????
            var text = document.getElementById("source").value; // or  var text = $("#md").val()
            console.log(text); // test
            var target = document.getElementById('rendered'),
                converter = new showdown.Converter(),
                html = converter.makeHtml(text);

            target.innerHTML = html;
        };

        parse();




//// MON RENDU SUR CHROME V.68 DONNE CELA ?

Undefined

//////
Voila, si vous pouvez m'aidez merci Smiley smile
Modifié par mattixnow (27 Aug 2018 - 21:42)
Modérateur
bonjour
var text = document.getElementById("source").value; // or  var text = $("#md").val()

value ou $.val() permet de récupérer la valeur d'un élément de formulaire. Pour le contenu d'une balise, c'est element.innerHTML ou element.innerText et leurs équivalents jQuery $.html() et $.text()

Aussi pourquoi insérer cela dans la page dans une balise invisible?
Modifié par kustolovic (28 Aug 2018 - 09:45)
Modérateur
Pour simplifier:

$.get("https://raw.githubusercontent.com/MattixNow/usefultools/master/README.md", function (gh) {
  var target = document.getElementById('rendered'),
        converter = new showdown.Converter();
  target.innerHTML = converter.makeHtml(gh);
});