Web ページはローカル ディレクトリ パス ダイアログ ボックスを選択し、ACTIVEX オブジェクトを使用してローカル ディスクとディレクトリを移動します。Web ページ上で関連する ACIVEX INTERNET オプションを有効にするだけで済みます。ローカルに対して高度なセキュリティは必要ありません。シンプルで使いやすいブラウザです。
Web ページのローカル ディレクトリ パスの選択ダイアログ ボックスの例
1. メインページ「select.html」を開き、「パスの選択」ボタンをクリックしてパス選択ページ「dir.html」に入り、ローカルディレクトリのパスを選択します
2. パス選択ページ「dir.html」が初期化されたら、ローカル ディスク ドライブをロードし、選択したディスク パスに従ってそのディレクトリをロードします。ディレクトリ内にサブディレクトリがある場合は、ディレクトリ リスト項目をダブルクリックして、次のエピソード ディレクトリに入ります。
3. [OK] をクリックして選択パス ページ "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 drives = s.split(",");
var tableDrives = document.getElementById("tables_drives");
for ( var i = 0; i {
var option = document.createElement("OPTION");
drives[i].split(":");
option.value = "[" drives[i].split(":")[0] ":]" drives[i].split(":")[1];
option.text = "[" drives[i].split(":")[0] ":]" drives[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 drive = 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 = new Enumerator(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 オプション = document.createElement("OPTION");
option.value = ドライブ ":\";
option.text = ドライブ ":\";
tableFolders.add(オプション);
var フォルダー = s.split(",");
for ( j = 0; j {
option = document.createElement("OPTION");
option.value = フォルダー[j];
option.text = フォルダー[j];
tableFolders.add(オプション);
}
}
else
{
alert("無法改变当前の内容!")
}
}
else
return 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双击选项内の 1 つの選択、就将このファイルの下にあるファイルが 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 folderpath = tableFolders.options[i].value.substring(0,tableFolders.options[i].value.length);
if ( folderpath.charAt(folderpath.length-1) == "\" )
{
document.getElementById("backDir").value = folderpath;
}
else
{
document.getElementById("backDir").value = folderpath "\";
}
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderpath);
fc = new Enumerator(f.SubFolders);
s = "";
for (;!fc.atEnd(); fc.moveNext())
{
s = fc.item();
s = ",";
}
var len = tableFolders.options.length;
while(len >= 0)
{
tableFolders.options.remove(len);
len--;
}
var opt = "";
var opt1 = "";
for ( j = 0; j < folderpath.split("\").length; j )
{
var option = document.createElement("OPTION");
opt = opt folderpath.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(option);
}
else
{
option.value = opt;
option.text = opt;
tableFolders.add(option);
}
}
if ( tableFolders.options[0].value == tableFolders.options[1].value )
{
tableFolders.options.remove(1);
}
if ( s != "" )
{
var folders = s.split(",");
for ( j = 0; j < folders.length -1; j )
{
option = document.createElement("OPTION");
option.value = folders[j];
option.text = folders[j];
tableFolders.add(option);
}
}
}
}
}