Мне нужна помощь с файлом .hta
, который я создаю для своей работы. Я хорошо разбираюсь в HTML, но JavaScript - это еще одна сфера для меня. Мне всегда удавалось смотреть на примеры и собирать воедино разные примеры, но то, что я пытаюсь сделать, выходит за рамки моей компетенции.
Прямо сейчас я успешно создал .hta
, который позволяет пользователю установить флажок, сообщающий код для выбора школы, затем выбрать опцию в раскрывающемся списке и добавить любую другую информацию в текстовое поле. Когда пользователь нажимает сохранить изменения, он выводит файл .xml
.
Моя проблема заключается в том, что когда пользователь закрывает файл .hta
, все поля, поля выбора и флажки при повторном открытии остаются пустыми. Я искал примеры кода везде, пытаясь найти способ сохранить данные. Я не буду вдаваться в подробности, но html5 localstorage не будет работать, и cookie-файлы JavaScript не будут работать, потому что они ограничены локальным пользователем.
Я хочу сохранить все введенные данные, чтобы любой пользователь (с любой рабочей станции) мог открыть .hta
и не заполнять все поля и выборки.
Три решения, которые я нашел:
Внешний сериализованный файл JSON, сохраненный локально, а затем вызываемый при открытии .hta
.
Используя этого парня JavaScript: hta-localstorage
Считать информацию из созданного .xml
файла.
К сожалению, мне не хватает знаний о том, как реализовать любой из этих вариантов. Если я приведу пример моего существующего кода, может ли кто-нибудь помочь мне реализовать один из ранее упомянутых методов? Или, может быть, у кого-то есть более легкая альтернатива?
Сценарий:
<script>
function WriteToFile()
{
try
{
var WshNetwork = new ActiveXObject("WScript.Network");
var userName = WshNetwork.UserName;
var fso, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
s = fso.CreateTextFile("xml_output/sc_output.xml", true);
var B_B_P=document.getElementById("A_Bright_Beginning_Preschool").checked;
var B_B_P_selected=document.getElementById("A_Bright_Beginning_PreschoolSelected").value;
var B_B_P_other=document.getElementById("A_Bright_Beginning_PreschoolOther").value;
var A_S_Cath_S=document.getElementById("All_Saints_Catholic_School").checked;
var A_S_Cath_S_selected=document.getElementById("All_Saints_Catholic_SchoolSelected").value;
var A_S_Cath_S_other=document.getElementById("All_Saints_Catholic_SchoolOther").value;
s.writeline("\<\?xml version\=\"1\.0\" encoding\=\"UTF\-8\" standalone\=\"yes\"\?\>");
s.writeline("\<School\_data xmlns\:xsi\=\"http\:\/\/www\.w3\.org\/2001\/XMLSchema\-instance\"\>");
if (B_B_P==false)
{
s.writeline("");
}
else
{
s.writeline(" \<record\>");
s.writeline(" \<School\_Name\>A Bright Beginning Preschool\<\/School\_Name\>");
s.writeline(" \<School\_Seq\>001\<\/School\_Seq\>");
s.writeline(" \<Delay\>" + B_B_P_selected + "\<\/Delay\>");
s.writeline(" \<Other\>" + B_B_P_other + "\<\/Other\>");
s.writeline(" \<\/record\>");
}
if (A_S_Cath_S==false)
{
s.writeline("");
}
else
{
s.writeline(" \<record\>");
s.writeline(" \<School\_Name\>All Saints Catholic School\<\/School\_Name\>");
s.writeline(" \<School\_Seq\>002\<\/School\_Seq\>");
s.writeline(" \<Delay\>" + A_S_Cath_S_selected + "\<\/Delay\>");
s.writeline(" \<Other\>" + A_S_Cath_S_other + "\<\/Other\>");
s.writeline(" \<\/record\>");
}
s.writeline("\<\/School\_data\>");
s.Close();
}
catch(err)
{
var strErr = 'Error:';
strErr += '\nNumber:' + err.number;
strErr += '\nDescription:' + err.description;
document.write(strErr);
}
}
</script>
HTML:
<h1>School Closures</h1>
<br />
<form>
<table width="900" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="middle"><input type="checkbox" name="A_Bright_Beginning_Preschool" id="A_Bright_Beginning_Preschool" /></td>
<td align="left" valign="middle">A Bright Beginning Preschool</td>
<td align="left" valign="middle"><select name="A_Bright_Beginning_PreschoolSelected" id="A_Bright_Beginning_PreschoolSelected">
<option value="" selected="selected"></option>
<option value="1 Hour Late">1 Hour Late</option>
<option value="2 Hours Late">2 Hours Late</option>
<option value="3 Hours Late">3 Hours Late</option>
<option value="4 Hours Late">4 Hours Late</option>
<option value="No School">No School</option>
</select></td>
<td align="left" valign="middle"><input name="A_Bright_Beginning_PreschoolOther" type="text" id="A_Bright_Beginning_PreschoolOther" size="80" /></td>
</tr>
<tr>
<td align="left" valign="middle"><input type="checkbox" name="All_Saints_Catholic_School" id="All_Saints_Catholic_School" /></td>
<td align="left" valign="middle">All Saints Catholic School</td>
<td align="left" valign="middle"><select name="All_Saints_Catholic_SchoolSelected" id="All_Saints_Catholic_SchoolSelected">
<option value="" selected="selected"></option>
<option value="1 Hour Late">1 Hour Late</option>
<option value="2 Hours Late">2 Hours Late</option>
<option value="3 Hours Late">3 Hours Late</option>
<option value="4 Hours Late">4 Hours Late</option>
<option value="No School">No School</option>
</select></td>
<td align="left" valign="middle"><input name="All_Saints_Catholic_SchoolOther" type="text" id="All_Saints_Catholic_SchoolOther" size="80" /></td>
</tr>
</table>