Сначала добавьте в заголовок теги:
<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>
если у вас уже есть теги script , просто добавьте эти функции выше.
В вашем теле или форме добавление тегов:
<input type="file" style="display:none" id="yourDesiredOrFavoriteNameForTheNewOpenFileDialogInstance"/>
Неважно, где в вашем html просто похоже на , вы создали новый экземпляр класса OpenFileDialog типа как глобальная переменная, имя которой - id элемента, независимо от того, где в вашем коде или 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, потому что это добавляет скрытый файл ввода 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-страницу в тегах head . Если ваша страница представляет собой веб-форму, а не простой HTML, и у вас нет заголовков, то поместите ее где угодно, чтобы она могла работать.
Не забудьте определить глобальную переменную в этом файле JScript, значением которой будет ваше тело или идентификатор формы в виде строки. После того, как вы связали JScript-файл со своей HTML-страницей или страницей веб-формы, вы можете загрузить событие вашего тела формы, установить значение этой переменной для своего тела или идентификатора формы. Затем в файле JScript вам больше не нужно присваивать документу идентификатор тела или формы одной страницы, просто присвойте ему значение этой переменной. Вы можете вызвать эту переменную bodyId или formId или bodyOrFormId или любое другое имя по вашему желанию.
Удачи, мужик!