MTURK:在预览中隐藏对象,显示何时接受HIT (URL在预览中更改,根据URL隐藏)

MTURK: Hide an object in preview, show when you accept a HIT (URL changes in preview, hide depending on URL)

本文关键字:隐藏 URL 根据 显示 对象 MTURK 何时接 HIT      更新时间:2023-09-26

我正在使用amazon mechanical turk,这是一个完成简单任务的平台。我用它来转录音频文件。这是我的设置:我使用基本的web表单来创建HITs,使用JWplayer

嵌入音频播放器

Mechanical turk有两种任务视图(称为HIT),预览视图和接受任务时的常规视图。我想做的是,当有人还没有接受任务时,只显示音频文件的15秒预览(并在接受时显示完整的音频)

我认为我包括两个对象,预览15秒音频和完整音频,并隐藏或显示他们取决于URL,这是改变当你预览/或接受任务(和保密规则)。

如果预览任务,URL看起来像:https://www.mturk.com/mturk/preview?groupId=3IQQTV3
当任务被接受时,它还包含一个assigntid =3493什么的(也看这里,他们建议使用" assignmentd =ASSIGNMENT_ID_NOT_AVAILABLE"来确定预览URL http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_ExternalQuestionArticle.html)

谁能帮我一下吗?我想这是可能的javascript,但我不知道如何做到这一点。

这是一个不完整的答案,因为它只展示了如何区分预览模式和可接受模式。我将此标记为"社区wiki",以便其他开发人员可以插入音频预览代码,如果他们知道如何做的话。

<script type="text/javascript">
/* DEFINE FUNCTION TO EXTRACT PARAMETERS FROM URL */
function turkGetParam( name ) { 
  var regexS = "['?&]"+name+"=([^&#]*)"; 
  var regex = new RegExp( regexS ); 
  var tmpURL = fullurl; 
  var results = regex.exec( tmpURL ); 
  if( results == null ) { 
    return ""; 
  } else { 
    return results[1];    
  } 
}
/* THIS IS THE LINE TO CAPTURE THE ACTUAL URL: */
var fullurl = window.location.href;
/* ASSIGNS THE URL PARAMETERS TO JAVASCRIPT VARIABLES */
var assign = turkGetParam('assignmentId');
var hit = turkGetParam('hitId');
var worker = turkGetParam('workerId');
/* WHAT TO DO IF THE WORKER IS PREVIEWING THE HIT: */
if(assign=="ASSIGNMENT_ID_NOT_AVAILABLE") {
    // CODE FOR PREVIEW
}
else {
    // CODE FOR ACCEPTED HIT
}
</script>