【发布时间】:2014-07-19 00:28:53
【问题描述】:
我正在度假,我酒店的互联网连接价格太高了。
在使用 http post 请求将有效的用户名/密码对发送到 http://an.internal.address/login 之前,网络流量将被阻止。
但是,它们使用户可以通过访问 http://an.internal.address/logout 来关闭连接
我想通过使用 Greasemonkey 自动执行以下操作来最大化我的 1 小时互联网票的持续时间:
- http post data "username=MY_USERNAME&password=MY_PASSWORD" 到http://an.internal.address/login
- 使用我的浏览器加载页面
- http 获取http://an.internal.address/logout
我使用 Firefox 30,我认为 Greasemonkey 实际上可以做到这一点。但是,我第一次尝试编写用户脚本:它可以部分工作。
似乎根本没有调用 login(),logout 也没有执行 GM_xmlhttpRequest,因为没有发出包含响应的 alert()。
// ==UserScript==
// @name test
// @namespace leonixyz
// @version 0.1
// @description Calls shell script once a page has been loaded or leaved
// @match http://*/*
// @match https://*/*
// @copyright leonixyz
// ==/UserScript==
function login() {
GM_xmlhttpRequest({
method: "POST",
url: "http://1.1.1.1/login",
data: "username=DE14945&password=VBJEETYN&dst=&popup=true",
onload: function(response) {
alert(response.responseText);
}
});
}
function logout() {
GM_xmlhttpRequest({
method: "GET",
url: "http://1.1.1.1/logout",
onload: function(response) {
alert(response.responseText);
}
});
}
window.addEventListener("unload", login);
window.addEventListener("load", logout);
【问题讨论】:
-
onload和onunload,但onunload还不可靠。 -
你在度假;扔掉小玩意儿,享受离网的几天吧! ...无论如何,仅使用 Greasemonkey 就可以实现您想要的,但我们无法查看可能至关重要的细节或测试解决方案。
标签: javascript linux firefox greasemonkey userscripts