Я сделал этот тест javascript: http://utbm.trunat.fr/CIP/quiz/
Он работает в обычном браузере, но даже не загружается с Internet Explorer.
Похоже, он не распознает initQuiz() function.
initQuiz()
У вас есть идеи, как я могу это исправить?
Internet Explorer не принимает запятую:
question = {'texte': $(this).attr("texte"), 'sound': $(this).attr("sound"),}
Видимо, из этой строки появляется другая ошибка:
$('title').html(QUIZ_TITLE[lang]);
Оказывается, , вы не можете установить такой заголовок в IE . Вместо этого используйте document.title = QUIZ_TITLE[lang].
document.title = QUIZ_TITLE[lang]
Третья ошибка заключается в том, что вы вводите новую переменную question без ключевого слова var, что является ошибкой в IE. Вы делаете это снова, позже, в response. Обновите ваш loadXML как таковой:
question
var
response
loadXML
function loadXML(xml) { $(xml).find("question").each(function() { var question = {'texte': $(this).attr("texte"), 'sound': $(this).attr("sound")}; reponses = []; $(this).find('carre').find('reponse').each(function() { var reponse = {'texte': $(this).text(), 'sound': $(this).attr("sound"), 'bonne': false}; if($(this).attr('bonne') == "vrai") reponse['bonne'] = true; reponses.push(reponse); }); question['reponses'] = reponses; questions.push(question); }); startGame(questions); }
Четвертая ошибка в том, как вы проверяете, что ответ правильный.
if($(this).attr('data-type') == 'true')
Вы сравниваете значение атрибута data-type со строковым значением "true", но когда вы присваиваете значение, вы устанавливаете его в логическое значение true:
data-type
"true"
true
$('#r'+(i+1)+'input').attr('data-type', r.bonne);
Чтобы убедиться, что вы всегда сравниваете строковые значения, например, вы можете установить значение следующим образом:
$('#r'+(i+1)+'input').attr('data-type', r.bonne.toString());