使用 javascript/qml 从网站获取文本

使用 javascript/qml 从网站获取文本

我有这个网站,我想从中复制文本。我不太了解,但它看起来使用 php(网站如下:http://feed.evangelizo.org/reader.php)所以我想编写一个可以返回网站内文本的函数。

像这样:

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);
}

关键是要编写这个 getText(string) 函数。我如何在 javascript/qml 中执行此操作?我看过一些有关 XMLHttpRequest 的内容,但我不明白。

以下是我想要的文本示例:http://feed.evangelizo.org/reader.php?date=20130616&type=liturgic_t&lang=AM&content=GSP

如果您知道答案,谢谢。这是完成我的 Ubuntu touch 应用程序所缺少的最后一块。

答案1

XMLHttp请求绝对是解决这个问题的方法之一。以下是我的快速示例:

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");
        }
    }
}

处理异步请求时,您应该记住您不会立即获得结果。

相关内容