Anki javascript отображается только в предварительном просмотре

В Anki у меня есть тип заметки, в котором одна карта фактически представляет собой удаление закрытия, однако я одновременно использую другие карты с полем удаления закрытия. Я пытался использовать javascript, чтобы заменить все в пределах двух символов, и, похоже, он работает в предварительном просмотре при редактировании, но когда карта появляется во время обычного использования, только первая строка отображается как обычный текст. Я использую настольную программу Linux для редактирования, но также хотел бы иметь возможность использовать ее в AnkiDroid.

Так вот вопрос: в чем проблема и как ее исправить?

Передний шаблон:

<script>
    function showDef() {
        document.getElementById("def").innerHTML = '{{Bedeutung 1}}'.replace(/^[^\/]+\/\*!?/, '').replace(/\*\/[^\/]+$/, '');
    };

    var initial = false;
    var beispiel = (function () {/*{{Beispiel 1}}*/}).toString().replace(/^[^\/]+\/\*!?/, '').replace(/\*\/[^\/]+$/, '');
    var splitBeispiel = beispiel.split('\\');
    document.write(splitBeispiel[0] + "<n id='cloze'>[...]</n>" + splitBeispiel[2]);
</script>
<p onclick="showDef()" id="def">Click to show definition</p>

Стиль:

.card {
 font-family: arial;
 font-size: 20px;
 text-align: center;
 color: black;
 background-color: white;
}

#cloze {
 font-family: arial;
 font-size: 25px;
 text-align: center;
 color: blue;
 background-color: white;
}

#def {
 font-family: arial;
 font-size: 15px;
 text-align: center;
 color: green;
 background-color: white;
}

#beispiel {
 font-family: arial;
 font-size: 15px;
 text-align: center;
 color: orange;
 background-color: white;
}

Назад Шаблон:

<script>
var initial = false;
var beispiel = (function () {/*{{Beispiel 1}}*/}).toString().replace(/^[^\/]+\/\*!?/, '').replace(/\*\/[^\/]+$/, '');
var splitBeispiel = beispiel.split('\\');
document.write(splitBeispiel[0] + "<n id='cloze'>" + splitBeispiel[1] +"</n>" + splitBeispiel[2]);
</script>

<hr id=answer>

{{Singular Nominativ}}

Поле «Beispiel 1» в следующем примере — «ein kirchlicher, ein \gesetzlicher\ Feiertag».

Скриншот предварительного просмотра редактора: Скриншот предварительного просмотра редактора

Скриншот теста: Скриншот теста


person user3231511    schedule 27.06.2017    source источник


Ответы (1)


Я думаю, вам следует поискать решение здесь. Избегайте использования document.write в своих шаблонах и используйте, например, document.getElementById("HTMLidToReplace").innerHTML = '<b>' + your_var + '</b>';. Надеюсь, поможет.

person JulyMorning    schedule 17.02.2018