【问题标题】:Check if still connected to host with Javascript检查是否仍使用 Javascript 连接到主机
【发布时间】:2016-01-27 16:08:41
【问题描述】:

在某些地方有一项政策要求用户点击按钮Continue 进入例如音乐流媒体网站。
假设我想使用本网站的时间超过本政策所接受的时间。一段时间后音乐停止播放并刷新网页后 - 政策要求您再次点击 Continue,即使您尚未离开页面。

我想编写一个脚本来检查连接是否仍然存在,但没有刷新网站(因为它播放音乐)。

我已经创建了可以单击Continue 的脚本,但不知道如何(如果可能的话)检查连接,if connection is broken 然后刷新网站并单击Continue

可以用 GreaseMonkey 完成吗?

  1. 我输入http://deezer.com/
  2. 脚本点击我的Continue
  3. 我听音乐
  4. 脚本正在检查连接
    • 如果连接正常,请转到 3。
  5. 刷新网站
  6. 转到 2。

点击脚本:

if (document.title == 'Click continue')
{
  var a = document.getElementById('continue-text');
  a.children[1].click();

}

如果没有策略则返回页面为:
200 OK 318ms
如果策略继续,则返回:
200 Forbidden 91ms

【问题讨论】:

  • 第 4 步的邮政编码。他们有这方面的 API 吗?
  • 第 4 步是缺少的代码。没有 API,我相信这样做是为了让某人活着。
  • 难道没有类似你请求一些 url 并且你会看到 401 而不是 200 的东西吗?
  • 如果我在一段时间后提出请求,则会显示不同的页面。但页面不会自行重新加载。

标签: javascript greasemonkey


【解决方案1】:

您可以像这样检查连接:

function checkConnection() {
    var xmlhttp;

    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
           if(xmlhttp.status == 200){
               // this might need some customisation:
               var connected = document.getElementById("id_of_the_continue_button") ? true : false;
               if (!connected) {
                   reconnect();
               }
           }
           else {
               reconnect();
           }
        }
    }
    // here you'll need a relevant url:
    xmlhttp.open("GET", "http://deezer.com/", true);
    xmlhttp.send();
}

【讨论】:

  • 我不确定这是否适用于我的情况。我相信站点不会返回 400,因为会加载另一个站点而不是这个。但是明天会检查一下。
  • 那你为什么写:“如果我在一段时间后请求会出现不同的页面。”?
  • 一个不否定另一个。网址保持http://deezer.com/,但内容不同,要求您点击Continue,然后重定向到所需的网站。
  • 所以你应该检查继续按钮的 id。这正是我的意思。
  • 好的,让我们看看它是否有效。我需要再等一个小时,因为周期是~1h
猜你喜欢
  • 1970-01-01
  • 2016-05-21
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 2015-08-27
  • 2023-03-08
  • 2012-08-28
相关资源
最近更新 更多