1

Amazon Mechanical Turkでは、HITに、ワーカーが実際のHITを実行する外部Webページへのリンクを含めています。ただし、HITを受け入れるまで、ワーカーからリンクを非表示にします。

これは、HITの作成中にページにJavaScriptを追加することで実行できますか?または、これはMTurkAPIまたは次のようなライブラリを介して実行する必要がありますBoto

4

1 に答える 1

5

Amazonは、外部Webページを開くときに、URLクエリ文字列で変数を渡します。このユースケースでは、を確認しassignmentIdます。の場合、ワーカーassignmentIdASSIGNMENT_ID_NOT_AVAILABLEHITをプレビューしています。(詳細については、mturkドキュメントをご覧ください。)

次のJavaScriptを使用してこれらの変数を取得できます。

var assignmentId = $.getUrlVar('assignmentId');
var workerId = $.getUrlVar('workerId');
var hitId = $.getUrlVar('hitId');
if (assignmentId == "ASSIGNMENT_ID_NOT_AVAILABLE"){
  // Worker is previewing the HIT
}
else {
  // Worker has accepted the HIT
}

$getUrlVar単純なjqueryプラグインはどこにありますか?

$.extend({
  getUrlVars: function(){
    // From http://code.google.com/p/js-uri/source/browse/trunk/lib/URI.js
    var parser = /^(?:([^:\/?\#]+):)?(?:\/\/([^\/?\#]*))?([^?\#]*)(?:\?([^\#]*))?(?:\#(.*))?/;
    var result = window.location.href.match(parser);
    var scheme    = result[1] || null;
    var authority = result[2] || null;
    var path      = result[3] || null;
    var query     = result[4] || null;
    var fragment  = result[5] || null;

    if (query === null || query === undefined) {
      return {};
    }
    var vars = [], hash;
    var hashes = query.split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});
于 2013-03-25T13:00:14.557 に答える