我正在学习JS&继续遇到如何将文档放在一起做这个或那个的问题。例如Greasemonkey已被记录,但您必须了解许多其他上下文,甚至没有提到使用greasepot wiki。
我一直在尝试以下各种组合,例如,我只能得到" undefined"但是来自GM_xmhttprequest函数:
var url = "https://en.wikipedia.org/wiki/CURL?action=render";
var fetchContent = console.log( function getContent(url) {
if (url.length < 0) {
return 0 ;
}
GM_xmlhttpRequest({
method: "GET",
url: url,
headers: {
"User-Agent": "Mozilla/5.0", // If not specified, navigator.userAgent will be used.
//"Accept": "text/xml" // If not specified, browser defaults will be used.
},
onload: function(response) {
//var responseXML = null;
alert(response.responseText);
// Inject responseXML into existing Object (only appropriate for XML content).
/*
if (!response.responseXML) {
responseXML = new DOMParser()
.parseFromString(response.responseText, "text/xml");
}
GM_log([
response.status,
response.statusText,
response.readyState,
response.responseHeaders,
response.responseText,
response.finalUrl,
responseXML
].join("\n"));
*/
}
});
} )
但我不确定我是否正确使用它:
需要在&#39; onload&#39;中定义一些东西? 需要先创建一个var吗? (例如var responseHoldingObject = new Object();?)? 等
任何有关寻找页面的建议我都很感激。目标是获取内容并最终将其附加到另一个页面中(例如在textarea或div中)。
答案 0 :(得分:0)
使用GreaseMonkey学习JS可能有点先进。
fetchContent
将被归为console.log
的返回值,即undefined
,因为console.log
未返回值。您正在记录的是函数getContent
本身。永远不会评估getContent
。
最后,您永远无法从异步函数获得响应,以便可靠地在回调之外使用(除了轮询)。基本上它应该是这样的(未经测试):
GM_xmlhttpRequest({
method: "GET",
url: url,
headers: {
"User-Agent": "Mozilla/5.0", // If not specified, navigator.userAgent will be used.
//"Accept": "text/xml" // If not specified, browser defaults will be used.
},
onload: function(response) {
/* use response here */
}
});
/* can't use response here */
没有fetchContent = console.log
的事情。