var lenQuiz = 42; var storageKeyHistory = "GyakubeniQuiz.histories"; var storageKeyAnswerOrder = "GyakubeniQuiz.answerOrder." + quizID; var storageKey = "GyakubeniQuiz.answers." + quizID; if (localStorage.getItem("QuizInvisible.answers") != null) { localStorage.setItem(storageKey, localStorage.getItem("QuizInvisible.answers")); localStorage.removeItem("QuizInvisible.answers"); } var userAnswers, answerOrder; try { userAnswers = JSON.parse(localStorage.getItem(storageKey)); } catch { userAnswers = Array(lenQuiz); userAnswers.fill(""); } try { answerOrder = JSON.parse(localStorage.getItem(storageKeyAnswerOrder)); } catch { answerOrder = []; } var cleared = false; var allCorrect = false; var difficulty = 1; var shuffle = true; var countable = false; var requestID = 0; var tweetTextBase = ""; function encode(str) { return btoa(encodeURIComponent(str)); } function updateTweetURL() { var url = location.href; if (url.indexOf("chain=") != -1) { //url = url.replace(/chain=\d+/, "chain="+chain); url = url.replace(/&chain=\d+/, ""); } else { //url = url + "&chain="+chain; } var tweetText = tweetTextBase; //if ($("#tweetsOrder").prop("checked")) { if (answerOrder.length > 0) { tweetText += "解答順:"; for (var i=0; i")); } var $answers = $(".answers"); var ok = true; for (var i=0; i<$answers.length; i++) { if (data.isCorrect[i]) { $answers.eq(i).addClass("isCorrect"); } else { ok = false; $answers.eq(i).removeClass("isCorrect"); } } if (ok) cleared = true; allCorrect = ok; var $hints = $(".hints"); for (var i=0; i<$hints.length; i++) { if (data.hints == undefined || i >= data.hints.length || data.hints[i] == "") { $hints.eq(i).hide(); } else { $hints.eq(i).show(); var hint = data.hints[i]; hint = hint.replace(/(https?:\/\/[\w!\?/\+\-_~=;\.,\*&@#\$%']+)/g, '$1'); hint = hint.replace(/\r?\n/g, "
"); $hints.eq(i).children(".hintContents").eq(0).html(hint); } } $("#invisibleCharacters").html(data.invisibleCharacters); var regainedCharacters = ""; for (s of data.correctAnswers) { regainedCharacters += s; } tmp = regainedCharacters.split(''); tmp = tmp.filter(function (x, i, self) { return self.indexOf(x) === i; }); tmp.sort(); tmp = tmp.join(','); regainedCharacters = tmp.replace(/,/g, ''); $("#regainedCharacters").text(regainedCharacters); for (var i=0; i' + tag.name + ''); } } $(".tagEditList").html(""); for (var info of data.tagInfo) { var attr = (data.tagIDs.includes(info.id) ? 'exists="exists"' : ""); $(".tagEditList").append('' + info.name + ''); } } function getTags() { $.ajax({ url: "functions/getTags.php", type: "GET", data: { "quizID": quizID, }, dataType: 'json', success: function (data) { updateTags(data); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert('通信に失敗しました。'); console.log(XMLHttpRequest.responseText); } }); } function monitorTagEditList() { $(".tagEditList").on("click", ".tagBoxContents", function() { var $e = $(this); var tagID = Number($e.attr("tagID")); var exists = $e.attr("exists") == "exists"; console.log(exists); $.ajax({ url: "functions/postTag.php", type: "POST", data: { "quizID": quizID, "tagID": tagID, "adds": !exists, }, dataType: 'json', success: function (data) { updateTags(data); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert('通信に失敗しました。'); console.log(XMLHttpRequest.responseText); } }); }); } $(function(){ if (userAnswers == undefined) { userAnswers = Array(lenQuiz); userAnswers.fill(""); } else if (userAnswers.length != $(".answers").length) { var n = userAnswers.length - $(".answers").length; if (n > 0) { for (var i=0; i