web-dev-qa-db-fra.com

obtenir du texte d'un site Web en javascript / qml

J'ai ce site Web, je voudrais copier le texte de. Je ne sais pas grand-chose, mais on dirait qu’il utilise php (voici le site: http://feed.evangelizo.org/reader.php ) Je voudrais donc écrire une fonction qui renvoyer le texte à l'intérieur d'un site.

quelque chose comme ça:

function example() {
    var currentTime = new Date(); 
    var month = currentTime.getMonth() + 1; 
    var day = currentTime.getDate(); 
    var year = currentTime.getFullYear(); 
    if (day < 10) day = '0'+day; 
    if (month < 10) month = '0'+month;
    var httpWeb = "http://feed.evangelizo.org/reader.php?date=" + year + month + day + "&type=reading&lang=FR&content=GSP";
    return getText(httpWeb);
}

Le problème est d'écrire cette fonction getText (string). Comment puis-je faire cela en javascript/qml? J'ai déjà vu quelque chose à propos de XMLHttpRequest mais je ne le comprends pas.

Voici un exemple de texte que j'aimerais: http://feed.evangelizo.org/reader.php?date=20130616&type=liturgic_t&lang=AM&content=GSP

Merci si vous connaissez la réponse. C'est la dernière pièce manquante pour finir mon application tactile Ubuntu.

2
londumas

XMLHttpRequest est certainement l'un des moyens de résoudre ce problème. Voici mon échantillon rapide:

import QtQuick 2.0

Rectangle {
    width: 360
    height: 360

    function setText(url) {
        var doc = new XMLHttpRequest();
        doc.onreadystatechange = function() {
            if (doc.readyState == XMLHttpRequest.DONE) {
                mainText.text = doc.responseText;
            }
        }
        doc.open("get", url);
        doc.setRequestHeader("Content-Encoding", "UTF-8");
        doc.send();
    }

    Text {
        id: mainText
        anchors.centerIn: parent
        text: "Click Me";
    }

    MouseArea {
        anchors.fill: parent
        onClicked: {
            setText("http://feed.evangelizo.org/reader.php?date=20130616&type=liturgic_t&lang=AM&content=GSP");
        }
    }
}

Lorsque vous traitez avec des requêtes asynchrones, gardez à l'esprit que vous n'obtiendrez pas de résultats instantanément.

1
user9440008