Fix: UTF-8 кодировка в modal + исправлен backdrop
✅ urlencode/decodeURIComponent вместо base64 ✅ modal-dialog-scrollable для прокрутки ✅ Обработка null для matching/ordering ✅ aria-hidden='true' для accessibility Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
26eabf0cfa
commit
965eb593db
|
|
@ -35,10 +35,10 @@
|
||||||
<strong>
|
<strong>
|
||||||
<a href="#" class="text-decoration-none" data-bs-toggle="modal" data-bs-target="#questionPreviewModal"
|
<a href="#" class="text-decoration-none" data-bs-toggle="modal" data-bs-target="#questionPreviewModal"
|
||||||
data-question-type="{{ $question->type }}"
|
data-question-type="{{ $question->type }}"
|
||||||
data-question-text="{{ base64_encode($question->question_text) }}"
|
data-question-text="{{ urlencode($question->question_text) }}"
|
||||||
data-answers="{{ base64_encode($question->answers->toJson()) }}"
|
data-answers="{{ urlencode($question->answers->toJson()) }}"
|
||||||
data-matching-pairs="{{ base64_encode($question->matchingPairs->toJson()) }}"
|
data-matching-pairs="{{ urlencode($question->matchingPairs->toJson()) }}"
|
||||||
data-ordering-items="{{ base64_encode($question->orderingItems->toJson()) }}">
|
data-ordering-items="{{ urlencode($question->orderingItems->toJson()) }}">
|
||||||
{{ Str::limit(strip_tags($question->question_text), 100) }}
|
{{ Str::limit(strip_tags($question->question_text), 100) }}
|
||||||
</a>
|
</a>
|
||||||
</strong>
|
</strong>
|
||||||
|
|
@ -65,12 +65,12 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Modal предпросмотра вопроса -->
|
<!-- Modal предпросмотра вопроса -->
|
||||||
<div class="modal fade" id="questionPreviewModal" tabindex="-1">
|
<div class="modal fade" id="questionPreviewModal" tabindex="-1" aria-hidden="true">
|
||||||
<div class="modal-dialog modal-lg">
|
<div class="modal-dialog modal-lg modal-dialog-scrollable">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h5 class="modal-title">Предпросмотр вопроса</h5>
|
<h5 class="modal-title">Предпросмотр вопроса</h5>
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<div id="modalQuestionText" class="mb-4"></div>
|
<div id="modalQuestionText" class="mb-4"></div>
|
||||||
|
|
@ -89,10 +89,12 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
previewModal.addEventListener('show.bs.modal', function(event) {
|
previewModal.addEventListener('show.bs.modal', function(event) {
|
||||||
const button = event.relatedTarget;
|
const button = event.relatedTarget;
|
||||||
const questionType = button.getAttribute('data-question-type');
|
const questionType = button.getAttribute('data-question-type');
|
||||||
const questionText = atob(button.getAttribute('data-question-text'));
|
const questionText = decodeURIComponent(button.getAttribute('data-question-text'));
|
||||||
const answers = JSON.parse(atob(button.getAttribute('data-answers')));
|
const answers = JSON.parse(decodeURIComponent(button.getAttribute('data-answers')));
|
||||||
const matchingPairs = JSON.parse(atob(button.getAttribute('data-matching-pairs') || 'bnVsbA=='));
|
const matchingPairsAttr = button.getAttribute('data-matching-pairs');
|
||||||
const orderingItems = JSON.parse(atob(button.getAttribute('data-ordering-items') || 'bnVsbA=='));
|
const orderingItemsAttr = button.getAttribute('data-ordering-items');
|
||||||
|
const matchingPairs = matchingPairsAttr ? JSON.parse(decodeURIComponent(matchingPairsAttr)) : [];
|
||||||
|
const orderingItems = orderingItemsAttr ? JSON.parse(decodeURIComponent(orderingItemsAttr)) : [];
|
||||||
|
|
||||||
// Отображаем текст вопроса
|
// Отображаем текст вопроса
|
||||||
document.getElementById('modalQuestionText').innerHTML = questionText;
|
document.getElementById('modalQuestionText').innerHTML = questionText;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue