Greasemonkey autoclick脚本被站点更新破解

时间:2011-10-04 16:35:09

标签: javascript firefox firefox-addon greasemonkey

感激您的帮助。

我有一个autoclick Greasemonkey for Firefox脚本,可以在作业进入时自动点击我工作的网站上的链接。脚本是这样的:

var BEEP_URL = 'file:///C:/Users/Home/beep.html'; //local url to beep.html for     example 'file:///C:/deploy/html/beep.html'
var REFRESH_DELAY = 8; // in seconds
var CLICK_DELAY = 0; // in seconds
var LENGTH_MIN = 15 // min length of audio in minutes
var LENGTH_MAX = 600 // max length of audio in minutes 

function init() {
var refreshTimer = window.setTimeout(function() {
    location.reload();
}, REFRESH_DELAY * 1000);

if(!$('a:contains(Read now)').length){
    href = false;
    $('a:contains(Start)').each(function() {
        time = parseInt($(this).parents('td').nextAll('td').contents('small').html());
        if (!href && time >= LENGTH_MIN && time <= LENGTH_MAX) {
            GM_openInTab(BEEP_URL); 
            href = this.href;
            clearTimeout(refreshTimer);
            window.setTimeout(function() {
                top.location.href = href;
            }, CLICK_DELAY * 1000);
        }
    })
}
}

if (window.addEventListener) {
window.addEventListener('load', init, false);
} else {
document.attachEvent('onload', init);
}

我工作的网站页面的重要部分如下所示:

<tr>
<td><a title = 'Job'>Job</a></td>

<td>4</td>

<td><i>Group</i></td>

<td>3/10/2011</td>

<td><a href=http://www.site.com>Start</a></td>

<td><a href='/sound/job_sound.mp3' ><img border=0 src=/images/audio.gif title='79 min uploaded 3/10/2011 7:39:31 AM' ></a><br /><small>80 min <br />7:39:31 AM</small></TD>

<td>&nbsp;</td>
</tr>

正如您所看到的,脚本会刷新页面,如果某个作业带有“开始”链接,并且LENGTH_MINLENGTH_MAX个变量位于{{1表格中的标签(最后一个small单元格),然后脚本将点击“开始”链接。

但是,最近,该网站略微更改了网页的结构,现在看起来像这样:

td

正如您所看到的,调用<tr> <td><a title = 'Job'>Job</a></td> <td>4</td> <td><i>Group</i></td> <td>3/10/2011</td> <td><a href=http://www.site.com>Start</a></td> <td><small>Audio 1: </small><a href='/sound/job_sound.mp3' ><img border=0 src=/images/audio.gif title='Audio 1: 39 min uploaded 10/4/2011 7:13:06 AM' alt='Audio 1 39 min uploaded 10/4/2011 7:13:06 AM'></a><small>40 min 7:13:06 AM</small><BR><small>Audio 2: </small><a href='/audio/job_sound2.mp3' ><img border=0 src=/images/audio.gif title='Audio 2: 40 min uploaded 10/4/2011 7:15:19 AM' alt='Audio 2 40 min uploaded 10/4/2011 7:15:19 AM'></a><small>41 min 7:15:19 AM</small><br>&nbsp;<br></TD> <td>&nbsp;</td> </tr> LENGTH_MIN变量的位已被更改(至少,我认为问题所在的位置),现在脚本不起作用了。页面上现在显示两个或多个音频文件,时间插入LENGTH_MAX标签。你有什么东西可以在那里看到我可以在脚本中更改以使其与此页面一起使用吗?它似乎被包含在small标签中的页面中的数据调用,并且该站点已经改变了表格的那一部分的布局方式,这导致了脚本问题。我不确定在脚本中调整什么来使其仍然单击“开始”链接。

真的很感谢你的帮助。非常感谢。

1 个答案:

答案 0 :(得分:0)

要解决这个问题的最小修改可能是用.contents('small')替换.find('small').eq(1)(据我所知the docs,可能不会做你想的) 。这可能不是一个非常强大的解决方案(即如果文档结构有更多更改,它将来可能会再次破坏),但很难说在不了解更多细节的情况下可能会有更好的解决方案。