您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
After completing a HIT anywhere within your queue (i.e. HITs Assigned To You), this script
当前为
- // ==UserScript==
- // @name mmmturkeybacon Queue Order Fix
- // @author mmmturkeybacon
- // @description After completing a HIT anywhere within your queue (i.e. HITs Assigned To You), this script
- // will automatically continue the HIT at the top* of your queue. If you sort your queue by
- // Time Left (least first), you can use this script to work around mturk's default** behavior
- // of ignoring what your queue is sorted by. You should only need to set the sort order once.
- // HITs accepted after setting the sort order will be sorted automatically.
- // Additionally you can manually continue the HIT at the top of your queue if you visit
- // "https://www.mturk.com/mturk/myhits?first". Create a bookmark on your
- // toolbar to quickly jump to the first HIT in your queue. This is especially useful if you
- // just caught a HIT that will expire quickly.
- // *The HIT at the top of the queue is determined when the HIT currently being worked on is
- // loaded. This means if a new HIT gets put on the top of the queue after the current HIT has
- // already been loaded it will not be the very next HIT, but the one just after that instead.
- // **To restore the default behavior sort by Assigned On (earliest first).
- // @namespace http://userscripts.org/users/523367
- // @match https://*.mturk.com/mturk/continue*
- // @match https://*.mturk.com/mturk/submit
- // @match https://*.mturk.com/mturk/myhits?first
- // @require http://code.jquery.com/jquery-latest.min.js
- // @version 1.66
- // @grant none
- // ==/UserScript==
- /*
- * Mechanical Turk has two types of HITs. By far the ExternalQuestion HITs are
- * the most common. These HITs use an iframe to display the task, disable the
- * yellow Submit HIT button, and use the hidden link with the id hitExternalNextLink
- * to direct the browser to a new page after the task has been submitted in the
- * iframe. The second type of HIT is the QuestionForm HIT. These HITs do not use
- * an iframe, use the yellow Submit HIT button to submit, and do not use
- * hitExternalNextLink to direct the browser to a new page.
- *
- * For ExternalQuestion HITs, fixing the queue order is as simple as replacing
- * hitExternalNextLink with the URL of the next link you wish to work on.
- *
- * QuestionForm HITs don't use the hitExternalNextLink, however we can utilize
- * the fact that after a QuestionForm HIT is submitted the URL ends with
- * /mturk/submit to redirect the browser to the top of the queue.
- *
- */
- $(document).ready(function()
- {
- var this_URL = window.location.href.split("mturk.com")[1];
- /* preview?groupId=GROUPIDSTRING&isPreviousIFrame= indicates not in queue
- * preview?isPreviousIFrame= indicates we are in the queue */
- var hitExternalNextLink = $('a[href^="/mturk/preview?isPreviousIFrame="][id="hitExternalNextLink"]');
- if (hitExternalNextLink.length > 0)
- { // inside queue
- if (this_URL.split('?')[0] == '/mturk/continue' && $('img[alt="Submit from within the iframe"][src="/media/submit_hit_disabled.gif"]').length > 0)
- { // ExternalQuestion HIT
- /* Setting hitExternalNextLink in a QuestionForm is harmless but doing
- * so would require an unnecessary $.get page request, so it's best to
- * only change hitExternalNextLink for ExternalQuestion HITs */
- $.get('/mturk/myhits', function(data)
- {
- var first_queue_URL = $(data).find('a[href^="/mturk/continue"]').eq(0).attr('href');
- if (first_queue_URL)
- {
- if (this_URL == first_queue_URL)
- {
- var second_queue_URL = $(data).find('a[href^="/mturk/continue"]').eq(1).attr('href');
- if (second_queue_URL)
- {
- hitExternalNextLink.attr('href', second_queue_URL);
- }
- }
- else
- {
- hitExternalNextLink.attr('href', first_queue_URL);
- }
- }
- });
- }
- else if (this_URL == '/mturk/submit')
- { // next HIT after a QuestionForm HIT was submitted
- $.get('/mturk/myhits', function(data)
- {
- var first_queue_URL = $(data).find('a[href^="/mturk/continue"]').eq(0).attr('href');
- if (first_queue_URL)
- {
- window.location.replace(first_queue_URL);
- }
- });
- }
- }
- else if (this_URL == '/mturk/myhits?first')
- { // bookmark link was used
- $.get('/mturk/myhits', function(data)
- {
- var first_queue_URL = $(data).find('a[href^="/mturk/continue"]').eq(0).attr('href');
- if (first_queue_URL)
- {
- window.location.replace(first_queue_URL);
- }
- });
- }
- // else it's a submit link but not inside the queue, so do nothing
- });