Я сделал учебный инструмент, используя Javascript и PHP.Есть переключатель, который показывает / скрывает ключевые слова в абзаце, так что пользователь может мысленно «заполнить пробелы».
Пока я сделал это так, что все ключевые слова подчеркнуты, и я используюселектор DOM для выбора всех innerHTML в тегах u.
<p>
Example sentence, <u>this</u> is a <u>keyword</u>.
</p>
<button onClick='hideKeywords()'>Hide Keywords</button>
<script>
function hideKeywords() {
var x = Array.from(document.getElementsByTagName('u'));
for (var i = 0; i < x.length; i++) {
x[i].style.visibility = "hidden";
}
}
</script>
Это работает так, как задумано - «ключевые слова» не отображаются и поток документа не изменяется, поскольку ключевые слова по-прежнему занимают одно и то же месточто они обычно берут.
Недостатком является то, что в абзацах с особенно длинными «ключевыми словами» структура строки абзаца нарушается, и похоже, что текст просто перемещается случайным образом в пространстве.Это было бы исправимо, если бы я мог как-то изменить видимость так, чтобы слова в ключевых словах были скрыты, а текстовое оформление (подчеркивание) все еще отображалось.Это сохраняет структуру строк.
Я думал об использовании Javascript для замены каждого символа в ключевом слове подчеркиванием, но всплывают еще две проблемы.Одна вещь состоит в том, что даже если количество символов остается неизменным, ширина может измениться. Например, «яблоко» не является такой же физической длиной, как «______».Это не идеально, поскольку поток документов изменится.Вторая проблема заключается в том, что я не могу придумать способ вернуть ключевые слова после преобразования их в подчеркивание.
Один из способов - вместо изменения видимости на «скрытый», я мог бы изменить цвет фонав тот же цвет, что и текст.Это блокирует текст, но структура строк и поток документов сохраняются.Тем не менее, я надеюсь найти способ реализовать мою оригинальную идею, поэтому мы будем благодарны за любые предложения!
Обновление: я бы предпочел не добавлять дополнительные ключевые слова в ключевые слова.Пользователь может добавлять новые записи с помощью текстового редактора, поэтому объявить ключевое слово так же просто, как подчеркнуть его в текстовом редакторе.