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

Javascript MTURK:在预览中隐藏对象,在接受点击时显示(预览中URL更改,根据URL隐藏),javascript,audio,amazon-web-services,mechanicalturk,transcription,Javascript,Audio,Amazon Web Services,Mechanicalturk,Transcription,我正在使用amazon mechanical turk,一个完成简单任务的平台。我用它来转录音频文件。 以下是我的设置: 我使用基本web表单创建点击,并使用JWplayer嵌入了一个音频播放器 Mechanical turk有两个任务视图(称为HIT),一个是预览视图,另一个是接受任务时的常规视图。我想做的是,当有人还没有接受任务时,只显示音频文件的15秒预览(并在接受任务时显示完整的音频) 我想我包括两个对象,预览15秒音频和完整音频,并根据URL隐藏或显示它们,当您预览/或接受任务(以及保

我正在使用amazon mechanical turk,一个完成简单任务的平台。我用它来转录音频文件。 以下是我的设置: 我使用基本web表单创建点击,并使用JWplayer嵌入了一个音频播放器

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

我想我包括两个对象,预览15秒音频和完整音频,并根据URL隐藏或显示它们,当您预览/或接受任务(以及保密规则)时,URL会发生变化

如果预览任务,则URL如下所示:
当任务被接受时,它还包含assignmentId=3493something (也请看这里,他们建议使用“assignmentId=ASSIGNMENT\u ID\u NOT\u AVAILABLE”来确定预览URL)


有人能帮我吗?我认为它可能是javascript,但我不知道如何做到这一点。

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

<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>

/*定义从URL提取参数的函数*/
函数turkGetParam(名称){
var regexS=“[\?&]”+name+“=([^&\]*)”;
var regex=新的RegExp(regexS);
var tmpURL=fullurl;
var results=regex.exec(tmpURL);
如果(results==null){
返回“”;
}否则{
返回结果[1];
} 
}
/*这是捕获实际URL的行:*/
var fullurl=window.location.href;
/*将URL参数分配给JAVASCRIPT变量*/
var assign=turkGetParam('assignmentId');
var hit=turkGetParam(“hitId”);
var-worker=turkGetParam('workerId');
/*如果工作人员正在预览点击,该怎么办:*/
if(assign==“ASSIGNMENT\u ID\u NOT\u AVAILABLE”){
//预览代码
}
否则{
//接受命中的代码
}

非常感谢托马斯!我将用播放器的代码片段实现它,并告诉您它是否有效!所以15秒的片段就是那个:但它也不起作用way@Josef你能详细解释一下“它不起作用”是什么意思吗?当然对不起。我原以为把代码片段“”放在那里,你写了//预览代码和接受点击代码就可以了,但事实并非如此。(通常,如果只是在html中插入代码片段,它会显示播放器)。玩家没有加载,没有显示任何内容。我希望能有一个快速复制粘贴的解决方案来解决这个问题,但看起来并不是那么容易。@Josef那个片段是HTML,所以你不能把它粘贴到javascript代码块中。您可能希望了解有关如何在另一个javascript代码块中包含javascript的信息。