Đầu tiên hãy thêm vào các thẻ head :
<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>
nếu bạn đã có các thẻ script , chỉ cần thêm các chức năng này ở trên.
Trong cơ thể hoặc thẻ biểu mẫu của bạn thêm:
<input type="file" style="display:none" id="yourDesiredOrFavoriteNameForTheNewOpenFileDialogInstance"/>
Không có vấn đề gì trong html của bạn, giống như bạn đã tạo một phiên bản mới của loại OpenFileDialog lớp làm biến toàn cục, có tên là id của phần tử, bất kể ở đâu trong mã hoặc xaml, nhưng trong tập lệnh hoặc mã của bạn , bạn không thể nhập tên của anh ấy, rồi đọc một thuộc tính hoặc gọi một hàm, vì có những hàm toàn cục thực hiện những hàm đó không được xác định trong phần tử input type = "file". Bạn chỉ cần cung cấp cho các hàm này id của kiểu đầu vào ẩn = "tệp" là tên của cá thể OpenFileDialog dưới dạng chuỗi.
Để giúp bạn dễ dàng hơn trong việc tạo các phiên bản hộp thoại tệp mở cho html của mình, bạn có thể tạo một hàm thực hiện điều đó:
function createAndAddNewOpenFileDialog(name) {
document.getElementById("yourBodyOrFormId").innerHtml += "<input type='file' style='display:none' id='" + name + "'/>"
}
và nếu bạn muốn loại bỏ hộp thoại tệp đang mở, thì bạn có thể tạo và sử dụng chức năng sau:
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;
}
nhưng trước khi bạn xóa hộp thoại tệp đang mở, hãy đảm bảo rằng hộp thoại đó tồn tại bằng cách tạo và sử dụng hàm sau:
function doesOpenFileDialogExist(name) {
return document.getElementById("yourBodyOrFormId").innerHtml.indexOf("<input type='file' style='display:none' id='" + name + "'/>") != -1
}
và nếu bạn không muốn để tạo ra và thêm các hộp thoại tập tin mở trong cơ thể hoặc dạng thẻ trong html, bởi vì đây là thêm ẩn input type = "file" s, sau đó bạn có thể làm điều đó trong kịch bản bằng cách sử dụng chức năng tạo ra ở trên :
function yourBodyOrFormId_onload() {
createAndAddNewOpenFileDialog("openFileDialog1");
createAndAddNewOpenFileDialog("openFileDialog2");
createAndAddNewOpenFileDialog("openFileDialog3");
createAndAddNewOpenFileDialog("File Upload");
createAndAddNewOpenFileDialog("Image Upload");
createAndAddNewOpenFileDialog("bla");
//etc and rest of your code
}
Đảm bảo rằng gần thẻ body hoặc thẻ biểu mẫu của bạn, bạn đã thêm:
onload="yourBodyOrFormId_onload()"
Bạn không cần phải làm dòng này ở trên, nếu bạn đã làm.
MẸO: Bạn có thể thêm vào dự án hoặc trang web của mình Tệp JScript mới, nếu bạn chưa có, và trong tệp này, bạn có thể đặt tất cả các chức năng hộp thoại tệp đang mở khỏi các thẻ tập lệnh và trang html hoặc trang web, và sử dụng chúng trong html hoặc trang biểu mẫu web của bạn từ tệp JScript này, nhưng đừng quên trước đó liên kết trang html hoặc trang biểu mẫu web với Tệp JScript. Bạn có thể làm điều đó chỉ bằng cách kéo tệp JScript vào trang html của bạn trong đầucác thẻ. Nếu trang của bạn là dạng web chứ không phải html đơn giản và bạn không có thẻ head, thì hãy đặt nó ở bất kỳ đâu để nó có thể hoạt động. Đừng quên xác định biến toàn cục trong Tệp JScript đó, giá trị của nó sẽ là nội dung hoặc id biểu mẫu của bạn dưới dạng chuỗi. Sau khi bạn liên kết tệp JScript với trang html hoặc trang biểu mẫu web của mình, bạn có thể tải lên sự kiện của nội dung biểu mẫu, đặt giá trị của biến đó thành nội dung hoặc id biểu mẫu của bạn. Sau đó, trong Tệp JScript, bạn không cần phải cung cấp cho tài liệu id của nội dung hoặc biểu mẫu của một trang nữa, chỉ cần cung cấp cho nó giá trị của biến đó. Bạn có thể gọi đó là biến bodyId hoặc formId hoặc bodyOrFormId hoặc bất kỳ tên khác mà bạn muốn.
Chúc bạn may mắn!