Сначала добавьте в заголовок теги:
<script>
function showDialog(openFileDialog) {
document.getElementById(openFileDialog).click();
}
function fileName(openFileDialog) {
return document.getElementById(openFileDialog).value;
}
function hasFile(openFileDialog) {
return document.getElementById(openFileDialog).value != "";
}
function fileNameWithoutFakePath(openFileDialog) {
var fileName = document.getElementById(openFileDialog).value;
return fileName.substr(fileName.lastIndexOf('\\') + 1);
}
function fakePathWithoutFileName(openFileDialog) {
var fileName = document.getElementById(openFileDialog).value;
return fileName.substr(0, fileName.lastIndexOf('\\'));
}
</script>
если у вас уже есть сценарий теги , просто добавьте эти функции выше.
В теги тела или формы добавление:
<input type="file" style="display:none" id="yourDesiredOrFavoriteNameForTheNewOpenFileDialogInstance"/>
Независимо от того, где в вашем html, это похоже на то, что вы создали новый экземпляр класса типа OpenFileDialog как глобальную переменную, имя которой является идентификатором элемента, независимо от того, где в вашем коде или xaml, но в вашем скрипте или коде , вы не можете ввести его имя, а затем прочитать свойство или вызвать функцию, потому что существуют глобальные функции, которые выполняют те функции, которые не определены в элементе input type = "file". Вам просто нужно дать этим функциям идентификатор скрытого ввода type = "file", который является именем экземпляра OpenFileDialog в виде строки.
Чтобы облегчить себе жизнь при создании экземпляров диалоговых окон с открытыми файлами в HTML, вы можете создать функцию, которая делает это:
function createAndAddNewOpenFileDialog(name) {
document.getElementById("yourBodyOrFormId").innerHtml += "<input type='file' style='display:none' id='" + name + "'/>"
}
и если вы хотите удалить диалог открытия файла, вы можете создать и использовать следующую функцию:
function removeOpenFileDialog(name) {
var html = document.getElementById("yourBodyOrFormId").innerHtml;
html = html.replace("<input type='file' style='display:none' id='" + name + "'/>", "");
document.getElementById("yourBodyOrFormId").innerHtml = html;
}
но перед тем, как удалить диалоговое окно открытия файла, убедитесь, что он существует, выполнив и используя следующую функцию:
function doesOpenFileDialogExist(name) {
return document.getElementById("yourBodyOrFormId").innerHtml.indexOf("<input type='file' style='display:none' id='" + name + "'/>") != -1
}
и если вы не хотите создавать и добавлять диалоговые окна открытия файлов в теги body или form в html, потому что это добавляет скрытый input type = "file" s, то вы можете сделать это в сценарии, используя функцию создания выше :
function yourBodyOrFormId_onload() {
createAndAddNewOpenFileDialog("openFileDialog1");
createAndAddNewOpenFileDialog("openFileDialog2");
createAndAddNewOpenFileDialog("openFileDialog3");
createAndAddNewOpenFileDialog("File Upload");
createAndAddNewOpenFileDialog("Image Upload");
createAndAddNewOpenFileDialog("bla");
//etc and rest of your code
}
Убедитесь, что рядом с тегами тела или формы вы добавили:
onload="yourBodyOrFormId_onload()"
Вам не нужно делать эту строку выше, если вы это уже сделали.
СОВЕТ: вы можете добавить в свой проект или веб-сайт новый файл JScript, если у вас его еще нет, и в этом файле вы можете поместить все функции диалога открытия файла подальше от тегов скрипта и страницы HTML или веб-формы и использовать их на странице html или веб-формы из этого файла JScript, но не забудьте перед этим связать страницу html или веб-формы с файлом JScript. Вы можете сделать это, просто перетащив файл JScript на свою html-страницу в голове.теги. Если ваша страница представляет собой веб-форму, а не простой html, и у вас нет тегов заголовков, поместите ее в любое место, чтобы она могла работать. Не забудьте определить глобальную переменную в этом файле JScript, значением которой будет ваше тело или идентификатор формы в виде строки. После того, как вы связали файл JScript со страницей html или веб-формы, вы можете загрузить событие тела формы, установить значение этой переменной для вашего тела или идентификатора формы. Затем в файле JScript вам больше не нужно указывать документу идентификатор тела или формы одной страницы, просто укажите значение этой переменной. Можно назвать эту переменную bodyId или FormID или bodyOrFormId или любое другое имя , которое вы хотите.
Удачи чувак!