>  기사  >  웹 프론트엔드  >  JS ACTIVEX는 웹 페이지 선택 로컬 디렉터리 경로 대화 상자_javascript 기술을 구현합니다.

JS ACTIVEX는 웹 페이지 선택 로컬 디렉터리 경로 대화 상자_javascript 기술을 구현합니다.

WBOY
WBOY원래의
2016-05-16 17:40:091310검색

웹 페이지는 로컬 디렉터리 경로 대화 상자를 선택하고 ACTIVEX 개체를 사용하여 로컬 디스크와 디렉터리를 탐색하며 웹 페이지에서 관련 ACTIVEX INTERNET 옵션만 활성화하면 됩니다. 로컬에 대해서는 높은 보안이 필요하지 않습니다. 브라우저이며 간단하고 사용하기 쉽습니다.

웹페이지 로컬 디렉터리 경로 선택 대화 상자 예

1. 메인 페이지 "select.html"을 열고 "경로 선택" 버튼을 클릭하여 경로 선택 페이지 "dir.html"로 들어간 다음 로컬 디렉터리 경로를 선택합니다

2. 경로 선택 페이지 "dir.html"이 초기화된 후 로컬 디스크 드라이브를 로드한 후, 선택한 디스크 경로에 따라 그 안에 있는 디렉터리를 로드합니다. 디렉터리에 하위 디렉터리가 있는 경우 디렉터리 목록 항목을 두 번 클릭하여 다음 에피소드 디렉터리로 들어갑니다.

3. "확인"을 클릭하여 선택 경로 페이지 "dir.html"을 닫고 선택한 경로 값을 메인 페이지의 "select.html" 텍스트 상자로 되돌립니다.


코드 복사 코드는 다음과 같습니다.

/**//*
* 초기화, 시스템의 모든 드라이브를 table_drives 목록에 넣습니다
*/
window.onload = 새 함수 init()
{
var fso, s, n, e, x;
fso = new ActiveXObject("Scripting.FileSystemObject");
e = 새 열거자(fso.Drives);
s = "";
for (; !e.atEnd(); e.moveNext())
{
x = e.item();
s = s x.DriveLetter;
s = ":";
if (x.DriveType == 3)
n = x.ShareName;
else if (x.IsReady)
n = x.VolumeName;
else
n = "[驱动器未就绪]";
s = n ",";
}
var 드라이브 = s.split(",");
var tableDrives = document.getElementById("tables_drives");
for ( var i = 0; i {
var option = document.createElement("OPTION");
드라이브[i].split(":");
option.value = "[" 드라이브[i].split(":")[0] ":]" 드라이브[i].split(":")[1];
option.text = "[" 드라이브[i].split(":")[0] ":]" 드라이브[i].split(":")[1];
tableDrives.add(옵션);
}
get_drives();
}

/**//*
*tables_drives 목록에서 선택한 드라이브의 모든 폴더는 table_folder 목록에 배치됩니다.
*/
function get_drives()
{
var tableDrives = document.getElementById("tables_drives");
var tableFolders = document.getElementById("table_folder");
for ( var i = 0; i < tableDrives.options.length; i )
{
if ( tableDrives.options[i].selected == true )
{
var fso, f, fc, s;
var 드라이브 = tableDrives.options[i].value.split(":")[0].substring(1,tableDrives.options[i].value.split(":")[0].length) ;
document.getElementById("backDir").value = 드라이브 ":\";
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.DriveExists(드라이브))
{
d = fso.GetDrive(드라이브);
if ( d.IsReady )
{
f = fso.GetFolder(d.RootFolder);
fc = 새 열거자(f.SubFolders);
s = "";
for (;!fc.atEnd(); fc.moveNext())
{
s = fc.item();
s = ",";
}

var len = tableFolders.options.length;
while(len >= 0)
{
tableFolders.options.remove(len);
렌--;
}
var option = document.createElement("OPTION");
option.value = 드라이브 ":\";
option.text = 드라이브 ":\";
tableFolders.add(옵션);
var 폴더 = s.split(",");
for ( j = 0; j {
option = document.createElement("OPTION");
옵션.값 = 폴더[j];
option.text = 폴더[j];
tableFolders.add(옵션);
}
}
else
{
alert("无法改变当前内容!")
}
}
else
false를 반환합니다.
}
}
}
function get_fileName()
{

var tableFolders = document.getElementById("table_folder");
for ( var i = 0; i < tableFolders.options.length; i )
{
if ( tableFolders.options[i].selected == true )
{
var 폴더 경로 = tableFolders.options[i].value.substring(0,tableFolders.options[i].value.length);
if (folderpath.charAt(folderpath.length-1) == "\" )
{
document.getElementById("backDir").value = 폴더 경로;
}
else
{
document.getElementById("backDir").value = 폴더 경로 "\";
}
}
}
}
/**//*
*table_folder双击选项中的一个选项,就将该文件夹下面的文件夹显示在table_folder列表中。
*/
function get_file()
{
var tableFolders = document.getElementById("table_folder");
var tableDrives = document.getElementById("tables_drives");
for ( var i = 0; i < tableFolders.options.length; i )
{
if ( tableFolders.options[i].selected == true )
{
var fso, f, fc, s;
var 폴더 경로 = tableFolders.options[i].value.substring(0,tableFolders.options[i].value.length);
if (folderpath.charAt(folderpath.length-1) == "\" )
{
document.getElementById("backDir").value = 폴더 경로;
}
else
{
document.getElementById("backDir").value = 폴더 경로 "\";
}


fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(폴더 경로);
fc = 새 열거자(f.SubFolders);
s = "";
for (;!fc.atEnd(); fc.moveNext())
{
s = fc.item();
s = ",";
}
var len = tableFolders.options.length;
while(len >= 0)
{
tableFolders.options.remove(len);
렌--;
}
var opt = "";
var opt1 = "";
for ( j = 0; j {
var option = document.createElement("OPTION");
opt = opt 폴더 경로.split("\")[j] "\";
if ( j > 0)
{
opt1 = opt;
option.value = opt1.substring(0,opt1.length-1);
option.text = opt1.substring(0,opt1.length-1);
tableFolders.add(옵션);
}
else
{
option.value = opt;
option.text = 선택;
tableFolders.add(옵션);
}

}
if ( tableFolders.options[0].value == tableFolders.options[1].value )
{
tableFolders.options.remove(1) ;
}
if ( s != "" )
{
var 폴더 = s.split(",");
for ( j = 0; j {
option = document.createElement("OPTION");
옵션.값 = 폴더[j];
option.text = 폴더[j];
tableFolders.add(옵션);
}
}
}
}
}
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.