Я предлагаю онлайн языковой тест, содержащий 50 вопросов.Каждый вопрос имеет свою максимальную продолжительность, выраженную в секундах.Количество секунд для каждого вопроса является переменной в базе данных.Допустим, для вопроса 1 переменная «секунд» равна 60 и содержит 5 флажков, и ему нужно проверить 3 из них.Это означает, что у участника есть 60 секунд, чтобы отметить 3 правильных флажка.Если участник проверяет правильные поля «вовремя», он нажимает «Отправить».Если пользователь не отвечает в течение 60 секунд, страница автоматически отправляется (даже если он не отметил все поля).В левом верхнем углу тестового окна кандидат может видеть перемещение горизонтальной временной шкалы.Количество секунд не отображается, но кандидат может ясно видеть, когда его время подходит к концу ...
Эта процедура работает без проблем в течение 4 лет, используя JavaScript (см. Ниже),ОДНАКО: он работает не во всех браузерах, например, Firefox не распознает его, и в результате пользователи Firefox имеют все время в мире для завершения или исследования своих ответов :-) До сих пор я простосказал: «Извините, наша система была оптимизирована только для Internet Explorer», и все.В конце концов, 95% всех браузеров были IE в любом случае.Но теперь я просмотрел пользовательскую статистику, и (в моем случае) только 67% всех участников все еще используют IE.Вот почему я в настоящее время ищу способ изменить свой сценарий от javascript «на странице» до JQUERY.Я обнаружил JQUERY только пару недель назад (я не программист), и я использовал JQUERY для ряда вещей, и это работает как шарм.И, кроме того, и что более важно, JQUERY, похоже, работает во ВСЕХ браузерах!
Однако я, похоже, не могу найти правильный код JQUERY, который бы справился с задачей.К вашему сведению, я прилагаю код, который сейчас использую ниже:
<!--
#bar, #barbackground
{
position:absolute;
left:0;
top:0;
background-color:#FFFFFF;
}
#barbackground{
background-color:#c0c0c0;
}
-->
</style>
<CFOUTPUT>
<CFIF #selectvragen.Vragen_seconds# EQ 0><CFSET seconden=60><CFELSE><CFSET seconden=#selectvragen.Vragen_seconds#+2></CFIF>
<script language="JavaScript1.2">
//1) Set the duration for the progress bar to complete loading (in seconds)
var duration=#seconden#
function postaction(){
document.forms.formulier.submit()
//Example action could be to navigate to a URL, like following:
//window.location="submit.cfm?scoreperpage=#scoreperpage#&subcatID=#selectvragen.Vragen_subcatID#&level=#selectvragen.Vragen_level#&maxpunten=#maxpunten#&maxtebehalenpunten=#selectvragen.Vragen_maxpunten#&vnr=#vnr#&Tabel=too_late&optie=1&score=#score#&teller=#teller#&nieuwelijst=#nieuwelijst#&starttijdQuestion=#CreateODBCDateTime(now())#"
}
///Done Editing/////////////
var clipright=0
var widthIE=0
var widthNS=0
function initializebar(){
if (document.all){
baranchor.style.visibility="visible"
widthIE=bar.style.pixelWidth
startIE=setInterval("increaseIE()",50)
}
if (document.layers){
widthNS=document.baranchorNS.document.barbackgroundNS.clip.width
document.baranchorNS.document.barNS.clip.right=0
document.baranchorNS.visibility="show"
startNS=setInterval("increaseNS()",50)
}
}
function increaseIE(){
bar.style.clip="rect(0 "+clipright+" auto 0)"
window.status="Loading..."
if (clipright<widthIE)
clipright=clipright+(widthIE/(duration*20))
else{
window.status=''
clearInterval(startIE)
postaction()
}
}
function increaseNS(){
if (clipright<202){
window.status="Loading..."
document.baranchorNS.document.barNS.clip.right=clipright
clipright=clipright+(widthNS/(duration*20))
}
else{
window.status=''
clearInterval(startNS)
postaction()
}
}
window.onload=initializebar
</script>
</CFOUTPUT>
<script language="JavaScript1.2">
if (document.all){
document.write('<div id="baranchor" style="position:relative;width:200px;height:10px;visibility:hidden;">')
document.write('<div id="barbackground" style="width:200px;height:10px;z-index:9"></div>')
document.write('<div id="bar" style="width:200px;height:10px;z-index:10"></div>')
document.write('</div>')
}
</script>
Я не знаю, как поступить, и не уверен, ясен ли этот вопрос ... Я мог бытакже присылайте скриншот теста, чтобы получить лучший обзор, если это необходимо?
Заранее спасибо,
С уважением,
Томас (Бельгия)