2011-10-04 36 views
-2

希望得到您的帮助。由网站更新破解的Greasemonkey autoclick脚本

我对Firefox的脚本,autoclicks我当一个作业进入工作网站上的链接的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> 

正如你所看到的,脚本刷新页面,如果作业与设置在该分钟的链接“开始”和适量的LENGTH_MINLENGTH_MAX变量3210标记在表格中(第二个为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标签中的页面中的数据调用,并且该网站已经改变了如何布置该表的部分导致脚本问题。我不确定该脚本中需要调整什么,才能点击“开始”链接。

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

回答

0

修复这个问题的最小变化可能是用.find('small').eq(1)替换.contents('small')(其中,据我所知,从the docs可能不会做你的想法)。这可能不是一个非常可靠的解决方案(即,如果文档结构有更多更改,它可能会在未来再次崩溃),但很难说如果不知道更多细节,可能会更好。

+0

Ilmari!这似乎是工作:)我只是要测试它多一点,但这似乎真的工作!给我第二个... – waterprism

+0

好的,哇,我认真地认为它会起作用。我还没有在网站上对它进行测试,只是本地的,但它在本地工作。对此,我真的非常感激。好东西。真的很棒的东西。真诚感谢您的帮助。 – waterprism