Я использую обычный javascript. У меня есть 45 html веб-страниц (в 17 подкаталогах), чтобы преподавать введение в психологию, и я создал подпрограмму поиска в javascript, чтобы мои ученики могли искать на веб-страницах определенный c текст. Если этот текст найден, я хочу отобразить веб-страницу с текстом в виде ссылки, чтобы они могли щелкнуть по ней и перейти на эту страницу. В настоящее время процедура поиска выполняется только по одной указанной c веб-странице для поиска текста. Я думаю, что могу создать массив из всех 45 веб-страниц, но я надеюсь, что есть лучший способ сканировать дерево каталогов, используя javascript. Основной каталог называется "pages" и содержит 17 подкаталогов по психологии topi c.
- Есть ли способ сканировать дерево каталогов без необходимости создания массива?
- Как отобразить веб-страницы, содержащие слово для поиска, в виде ссылки?
- Я заметил, что иногда доступ к файлу не работает? Должен ли быть тайм-аут и позволить процедуре повторить попытку?
- Я также заметил, что пункт меню поиска - который открывает div для поиска - как только он запускается - не очищает страницу, если студент нажимает на кнопку Опция меню поиска во второй раз. Как мне сбросить DIV для запуска подпрограммы во второй раз?
Спасибо за любую помощь!
Это мой код для подпрограммы поиска, если это поможет ...
<div id="Searchdiv" class="white-text" style="border: 2px solid white;">this is the acquire a word division
<div style="color:white; margin: auto; width: 50%;"> <label for="name">
<span>Term to seach for: </span> </label>
<form><input style="float:right;" id="sText" name="sText" placeholder="What word do you want to find.."
value="goofy" type="text"></form>
<button style="color:black;" onclick="loadXMLDoc(document.getElementById('sText').value)">Search</button>
</div>
</div>
<script>
function loadXMLDoc(Sword) {
urlConstruct = "https://www.blahblahblah/pages/blahblahblah.html"
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
const Wpage = this.responseText;
let regx = new RegExp(Sword,"i")
const content = Wpage.textContent;
const hasText = regx.test(Wpage);
// see if it worked
document.getElementById("searchdiv").innerHTML = Sword + " HELLO! got to step 3 and hasText is " + hasText;
}
};
xhttp.open("GET", urlConstruct, true);
xhttp.send();
}
</script>