jsPsych/examples/lexical-decision.html
2016-12-09 21:25:56 -05:00

149 lines
5.9 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<script src="../jspsych.js"></script>
<script src="../plugins/jspsych-text.js"></script>
<script src="../plugins/jspsych-single-stim.js"></script>
<link rel="stylesheet" href="../css/jspsych.css"></link>
<style>
.stimulus { font-size: 32px; }
</style>
</head>
<script>
var timeline = [];
var instructions = {
type: 'text',
text: '<p>Each screen will show either an English word or letters that do not form a word.</p>'+
'<p>Press Y if the letters form a valid word.</p><p>Press N if the letters do not form a valid word.</p>'+
'<p>When you are ready to begin, press Y or N.</p>',
choices: ['y','n']
}
timeline.push(instructions);
var stimuli = [
{word: 'woman', word_validity: 'valid', word_frequency: 'high'},
{word: 'title', word_validity: 'valid', word_frequency: 'high'},
{word: 'speed', word_validity: 'valid', word_frequency: 'high'},
{word: 'movie', word_validity: 'valid', word_frequency: 'high'},
{word: 'night', word_validity: 'valid', word_frequency: 'high'},
{word: 'house', word_validity: 'valid', word_frequency: 'high'},
{word: 'child', word_validity: 'valid', word_frequency: 'high'},
{word: 'apple', word_validity: 'valid', word_frequency: 'high'},
{word: 'books', word_validity: 'valid', word_frequency: 'high'},
{word: 'color', word_validity: 'valid', word_frequency: 'high'},
{word: 'whigs', word_validity: 'valid', word_frequency: 'low'},
{word: 'pecan', word_validity: 'valid', word_frequency: 'low'},
{word: 'hanky', word_validity: 'valid', word_frequency: 'low'},
{word: 'femur', word_validity: 'valid', word_frequency: 'low'},
{word: 'tusks', word_validity: 'valid', word_frequency: 'low'},
{word: 'tongs', word_validity: 'valid', word_frequency: 'low'},
{word: 'petal', word_validity: 'valid', word_frequency: 'low'},
{word: 'dunce', word_validity: 'valid', word_frequency: 'low'},
{word: 'friar', word_validity: 'valid', word_frequency: 'low'},
{word: 'gable', word_validity: 'valid', word_frequency: 'low'},
{word: 'womfn', word_validity: 'invalid', word_frequency: undefined},
{word: 'tgtle', word_validity: 'invalid', word_frequency: undefined},
{word: 'speqd', word_validity: 'invalid', word_frequency: undefined},
{word: 'movje', word_validity: 'invalid', word_frequency: undefined},
{word: 'npght', word_validity: 'invalid', word_frequency: undefined},
{word: 'hoxse', word_validity: 'invalid', word_frequency: undefined},
{word: 'chrld', word_validity: 'invalid', word_frequency: undefined},
{word: 'wpple', word_validity: 'invalid', word_frequency: undefined},
{word: 'boxks', word_validity: 'invalid', word_frequency: undefined},
{word: 'colwr', word_validity: 'invalid', word_frequency: undefined},
{word: 'whzgs', word_validity: 'invalid', word_frequency: undefined},
{word: 'pecjn', word_validity: 'invalid', word_frequency: undefined},
{word: 'hankk', word_validity: 'invalid', word_frequency: undefined},
{word: 'fembr', word_validity: 'invalid', word_frequency: undefined},
{word: 'tmsks', word_validity: 'invalid', word_frequency: undefined},
{word: 'tvngs', word_validity: 'invalid', word_frequency: undefined},
{word: 'pettl', word_validity: 'invalid', word_frequency: undefined},
{word: 'duncr', word_validity: 'invalid', word_frequency: undefined},
{word: 'friwr', word_validity: 'invalid', word_frequency: undefined},
{word: 'gabls', word_validity: 'invalid', word_frequency: undefined}
];
var trials = {
timeline_variables: stimuli,
randomize_order: true,
timeline: [
{
type: 'single-stim',
stimulus: '<p class="stimulus">+</p>',
is_html: true,
choices: jsPsych.NO_KEYS,
timing_response: 500,
timing_post_trial: 0
},
{
type: 'single-stim',
stimulus: function(){ return "<p class='stimulus'>"+jsPsych.timelineVariable('word')+"</p>"; },
is_html: true,
choices: ['y','n'],
timing_post_trial: 500,
data: function(){
return {
word_validity: jsPsych.timelineVariable('word_validity'),
word_frequency: jsPsych.timelineVariable('word_frequency')
}
},
on_finish: function(data){
if(data.word_validity == 'valid'){
var correct = data.key_press == jsPsych.pluginAPI.convertKeyCharacterToKeyCode('y');
} else {
var correct = data.key_press == jsPsych.pluginAPI.convertKeyCharacterToKeyCode('n');
}
jsPsych.data.addDataToLastTrial({correct: correct});
}
}
]
}
timeline.push(trials);
var debrief = {
type: 'text',
text: function(){
var high_frequency = jsPsych.data.getData({word_frequency: 'high', correct: true});
var low_frequency = jsPsych.data.getData({word_frequency: 'low', correct: true});
var high_rt = 0;
for(var i=0; i<high_frequency.length; i++){
high_rt += high_frequency[i].rt;
}
high_rt = Math.round(high_rt / high_frequency.length);
var low_rt = 0;
for(var i=0; i<low_frequency.length; i++){
low_rt += low_frequency[i].rt;
}
low_rt = Math.round(low_rt / low_frequency.length);
var message = "<p>All done!</p>"+
"<p>Your average correct response time for high frequency English words was "+high_rt+"</p>"+
"<p>Your average correct response time for low frequency English words was "+low_rt+"</p>"+
"<p>The typical pattern of results is that people are faster to respond to high frequency (common) "+
"word than low frequency (uncommon) words.</p>"+
"<p>Press C to see the entire set of data generated by this experiment.</p>";
return message;
}
}
timeline.push(debrief);
jsPsych.init({
timeline: timeline,
on_finish: function() {
jsPsych.data.displayData();
},
default_iti: 250
});
</script>
</html>