我有这个网站,我想从中复制文本。我不太了解,但它看起来使用 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");
}
}
}
处理异步请求时,您应该记住您不会立即获得结果。