[英]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
。 如果assignmentId
为ASSIGNMENT_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.