繁体   English   中英

在工作人员接受HIT之前,如何在HIT中隐藏指向外部网页的链接

[英]How to hide the link to an external web page in a HIT before workers accept the HIT

在Amazon Mechanical Turk上,我在HIT中包含一个指向外部网页的链接,在该网页上工人们将进行实际的HIT。 但是,我想对工人隐藏链接,直到他们接受HIT。

创建HIT时是否可以通过在页面上添加一些JavaScript来完成? 或必须通过MTurk API或Boto库来完成

打开外部网页时,Amazon将在url查询字符串中传递变量。 对于此用例,您需要查看assignmentId 如果assignmentIdASSIGNMENT_ID_NOT_AVAILABLE则工作程序正在预览HIT。 (有关更多信息,请参见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];
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM