【问题标题】:Greasemonkey autoclick script cracked by site update [closed]Greasemonkey autoclick脚本被站点更新破解[关闭]
【发布时间】:2011-10-04 16:35:09
【问题描述】:

感谢您的帮助。

我有一个用于 Firefox 的 autoclick Greasemonkey 脚本,当有工作进入时,它会自动点击我工作的网站上的链接。脚本是这样的:

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>

如您所见,该脚本会刷新页面,如果有一个作业带有“开始”链接以及表中small 标记中LENGTH_MINLENGTH_MAX 变量的正确分钟数(倒数第二个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_MINLENGTH_MAX 变量的位已更改(至少,我认为这是问题所在),现在脚本不再工作了。现在页面上显示了两个或多个音频文件,时间插入到small 标签中。有什么可以在那里看到我可以在脚本中更改以使其与此页面一起使用的内容吗?似乎它被包裹在small 标签中的页面中的数据调用,并且该站点已经更改了导致脚本问题的表格该部分的布局方式。我不确定要在脚本中进行哪些调整以使其仍然单击“开始”链接。

非常感谢您的帮助。非常感谢。

【问题讨论】:

    标签: javascript firefox firefox-addon greasemonkey


    【解决方案1】:

    解决此问题的最小更改可能是用.find('small').eq(1) 替换.contents('small')(据我所知the docs,它可能不会按照您的想法做)。这可能不是一个非常强大的解决方案(即,如果对文档结构进行更多更改,它可能会在未来再次中断),但如果不了解更多细节,很难说什么会更好。

    【讨论】:

    • 伊尔马里!这似乎有效:) 我只是要再测试一下,但这似乎真的有效!给我一秒钟...
    • 好的,哇,我真的认为它会起作用。我还没有在网站上测试它,只是在本地测试,但它在本地工作。对此,我真的非常感激。好东西。真的很棒的东西。衷心感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多