我正在使用Tampermonkey(与Greasemonkey相同,但对于Chrome)来制作脚本。我的想法是将我写的文本粘贴到Pastebin中。该文本写在其他网站上。我看到我可以使用GM_xmlhttpRequest来完成它,但它不起作用。 这是我的代码:
var charac = new Array(50);
var i =0
function callkeydownhandler(evnt) {
var ev = (evnt) ? evnt : event;
var code=(ev.which) ? ev.which : event.keyCode;
charac[i]= code;
i++;
}
if (window.document.addEventListener) {
window.document.addEventListener("keydown", callkeydownhandler, false);
} else {
window.document.attachEvent("onkeydown", callkeydownhandler);
}
GM_xmlhttpRequest({
method: "POST",
url: "http://pastebin.com/post.php",
data: "user=mysuser&password=mypassword", //as you can imagine I use my credentials
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
onload: function(response) {
alert("posted");
document.getElementById("paste_code").value+=charac[i];
document.getElementById("submit").click();
}
});
我确定最后两行不能正常工作,但我不知道为什么。第一个功能非常完美。
我做得不好?我该如何解决?
谢谢! =)
答案 0 :(得分:5)
我开发了一个简单的API,可以完全按照您的要求进行操作。
Pastebin有一个API,但它目前不支持编辑帖子 这就是为什么我需要创建两种不同的服务"特定于pastebin ... PASTEBIN和PASTEBIN2
如果您不需要编辑,请使用PASTEBIN。否则,请使用PASTEBIN2。
您需要的第一件事是Unique Developer API Key 然后你需要一个User API Key。
以下是我的脚本使用的一些示例:
创建新帖子
Persist.write({
service : "PASTEBIN",
value : "...",
data : {
api_dev_key : "...",
api_user_key : "...",
},
onload : function (result) {
alert("http://pastebin.com/" + result.key);
}
});
编辑现有帖子
Persist.write({
service : "PASTEBIN2",
mode : -1, // prepend
key : "..."
value : "...",
data : {
api_dev_key : "...",
api_user_key : "...",
},
onload : function (result) {
alert("Post #" + result.key + "\nNew value: " + result.value);
}
});
阅读现有文章
Persist.read({
service : "PASTEBIN",
key : "..."
data : {
api_dev_key : "...",
api_user_key : "...",
},
onload : function (result) {
alert("\nValue: " + result.value);
}
});