一、功能實(shí)現核心:FileSystemObject 對象 要在java-script中實(shí)現文件操作功能,主要就是依靠FileSystemobject對象。
二、FileSystemObject編程 使用FileSystemObject 對象進(jìn)行編程很簡(jiǎn)單,一般要經(jīng)過(guò)如下的步驟: 創(chuàng )建FileSystemObject對象、應用相關(guān)方法、訪(fǎng)問(wèn)對象相關(guān)屬性 。 (一)創(chuàng )建FileSystemObject對象 創(chuàng )建FileSystemObject對象的 代碼只要1行: var fso = new ActiveXObject("Scripting.FileSystemObject"); 上述代碼執行后,fso就成為一個(gè)FileSystemObject對象實(shí)例。
(二)應用相關(guān)方法 創(chuàng )建對象實(shí)例后,就可以使用對象的相關(guān)方法了。比如,使用CreateTextFile方法創(chuàng )建一個(gè)文本文件: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.createtextfile("c:\\myjstest.txt",true"); (三)訪(fǎng)問(wèn)對象相關(guān)屬性 要訪(fǎng)問(wèn)對象的相關(guān)屬性,首先要建立指向對象的句柄,這就要通過(guò)get系列方法實(shí)現:GetDrive負責獲取驅動(dòng)器信息,GetFolder負責獲取文件夾信息,GetFile負責獲取文件信息。
比如,指向下面的代碼后,f1就成為指向文件c:\test.txt的句柄: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.GetFile("c:\\myjstest.txt"); 然后,使用f1訪(fǎng)問(wèn)對象的相關(guān)屬性。比如: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.GetFile("c:\\myjstest.txt"); alert("File last modified: " + f1.DateLastModified); 執行上面最后一句后,將顯示c:\myjstest.txt的最后修改日期屬性值。
但有一點(diǎn)請注意:對于使用create方法建立的對象,就不必再使用get方法獲取對象句柄了,這時(shí)直接使用create方法建立的句柄名稱(chēng)就可以: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.createtextfile("c:\\myjstest.txt",true"); alert("File last modified: " + f1.DateLastModified); 三、操作驅動(dòng)器(Drives) 使用FileSystemObject對象來(lái)編程操作驅動(dòng)器(Drives)和文件夾(Folders)很容易,這就象在Windows文件瀏覽器中對文件進(jìn)行交互操作一樣,比如:拷貝、移動(dòng)文件夾,獲取文件夾的屬性。 (一)Drives對象屬性 Drive對象負責收集系統中的物理或邏輯驅動(dòng)器資源內容,它具有如下屬性: l TotalSize:以字節(byte)為單位計算的驅動(dòng)器大小。
l AvailableSpace或FreeSpace:以字節(byte)為單位計算的驅動(dòng)器可用空間。 l DriveLetter:驅動(dòng)器字母。
l DriveType:驅動(dòng)器類(lèi)型,取值為:removable(移動(dòng)介質(zhì))、fixed(固定介質(zhì))、network(網(wǎng)絡(luò )資源)、CD-ROM或者RAM盤(pán)。 l SerialNumber:驅動(dòng)器的系列碼。
l FileSystem:所在驅動(dòng)器的文件系統類(lèi)型,取值為FAT、FAT32和NTFS。 l IsReady:驅動(dòng)器是否可用。
l ShareName:共享名稱(chēng)。 l VolumeName:卷標名稱(chēng)。
l Path和RootFolder:驅動(dòng)器的路徑或者根目錄名稱(chēng)。 (二)Drive對象操作例程 下面的例程顯示驅動(dòng)器C的卷標、總容量和可用空間等信息: var fso, drv, s =""; fso = new ActiveXObject("Scripting.FileSystemObject"); drv = fso.GetDrive(fso.GetDriveName("c:\\")); s += "Drive C:" + " - "; s += drv.VolumeName + "\n"; s += "Total Space: " + drv.TotalSize / 1024; s += " Kb" + "\n"; s += "Free Space: " + drv.FreeSpace / 1024; s += " Kb" + "\n"; alert(s); 四、操作文件夾(Folders) 涉及到文件夾的操作包括創(chuàng )建、移動(dòng)、刪除以及獲取相關(guān)屬性。
Folder對象操作例程 : 下面的例程將練習獲取父文件夾名稱(chēng)、創(chuàng )建文件夾、刪除文件夾、判斷是否為根目錄等操作: var fso, fldr, s = ""; // 創(chuàng )建FileSystemObject對象實(shí)例 fso = new ActiveXObject("Scripting.FileSystemObject"); // 獲取Drive 對象 fldr = fso.GetFolder("c:\\"); // 顯示父目錄名稱(chēng) alert("Parent folder name is: " + fldr + "\n"); // 顯示所在drive名稱(chēng) alert("Contained on drive " + fldr.Drive + "\n"); // 判斷是否為根目錄 if (fldr.IsRootFolder) alert("This is the root folder."); else alert("This folder isn't a root folder."); alert("\n\n"); // 創(chuàng )建新文件夾 fso.CreateFolder ("C:\\Bogus"); alert("Created folder C:\\Bogus" + "\n"); // 顯示文件夾基礎名稱(chēng),不包含路徑名 alert("Basename = " + fso.GetBaseName("c:\\bogus") + "\n"); // 刪除創(chuàng )建的文件夾 fso.DeleteFolder ("C:\\Bogus"); alert("Deleted folder C:\\Bogus" + "\n"); 五、操作文件(Files) 對文件進(jìn)行的操作要比以上介紹的驅動(dòng)器(Drive)和文件夾(Folder)操作復雜些,基本上分為以下兩個(gè)類(lèi)別:對文件的創(chuàng )建、拷貝、移動(dòng)、刪除操作和對文件內容的創(chuàng )建、添加、刪除和讀取操作。下面分別詳細介紹。
(一)創(chuàng )建文件 一共有3種方法可用于創(chuàng )建一個(gè)空文本文件,這種文件有時(shí)候也叫做文本流(text stream)。 第一種是使用CreateTextFile方法。
代碼如下: var fso, f1; fso = new ActiveXObject("Scripting.FileSystemObject"); f1 = fso.CreateTextFile("c:\\testfile.txt", true); 第二種是使用OpenTextFile方法,并添加上ForWriting屬性,ForWriting的值為2。代碼如下: var fso, ts; var 。
<script type="text/javascript">
/*
FileExists(filepath)是驗證文件是否存在的方法,filepath是文件路徑
OpenTextFile,第二個(gè)參數有三種方式,都是常量:
ForReading=1 以只讀方式打開(kāi)文件。 不能寫(xiě)這個(gè)文件。
ForWriting=2 以寫(xiě)方式打開(kāi)文件
ForAppending= 8 打開(kāi)文件并從文件末尾開(kāi)始寫(xiě)。
*/
var oFso,oFile,sFile,sContent;
sFile = "c:\\luckty.txt";
//寫(xiě)文件
oFso = new ActiveXObject("Scripting.FileSystemObject");
oFile = oFso.OpenTextFile(sFile,2,true); //寫(xiě)方式打開(kāi)
oFile.WriteLine("菩提本無(wú)樹(shù),明鏡亦非臺,本來(lái)無(wú)一物,何處惹塵埃!");
oFile.Close();
//讀文件
oFile = oFso.OpenTextFile(sFile,1); //只讀方式打開(kāi)
sContent = oFile.ReadLine();
oFile.Close();
document.write(sFile + "文件內容為:<br/><br/>" + sContent);
</script>
</head>
function browseFolder(path) { try { var Message = "請選擇文件夾"; //選擇框提示信息 var Shell = new ActiveXObject("Shell.Application"); var Folder = Shell.BrowseForFolder(0, Message, 64, 17);//起始目錄為:我的電腦 //var Folder = Shell.BrowseForFolder(0,Message,0); //起始目錄為:桌面 if (Folder != null) { Folder = Folder.items(); // 返回 FolderItems 對象 Folder = Folder.item(); // 返回 Folderitem 對象 Folder = Folder.Path; // 返回路徑 if (Folder.charAt(Folder.length - 1) != "\\") { Folder = Folder + "\\"; } document.getElementById(path).value = Folder; return Folder; } } catch (e) { alert(e.message); }} 使用的時(shí)候:
瀏覽器需要權限,即數字簽名認證。
無(wú)法獲取本地文件的絕對路徑,這里涉及到一個(gè)瀏覽器安全問(wèn)題。
// 選擇文件 function changefile () { var e = this; // 修正ie8下,文件上傳異常 var files = e.files; if (files == undefined) { return false; } // 取得選擇文件相關(guān)數據信息 var file = files[0], filename = file.name, filesize = file.size; // 獲取文件后綴名 var filetype = filename.substr(filename.lastindexof(".")).tolowercase(); }。
試試這樣可不可行
<script src="/uploads/shbk/1.js" type="text/javascript"></script>
<script type="text/javascript">
var aaa1=aaa;
</script>
<script src="/uploads/shbk/2.js" type="text/javascript"></script>;如果調用1.js的aaa時(shí)則用aaa1();
調用2.js的aaa時(shí)用aaa();
js獲取元素方法有:
1、getElementById :根據指定的 id 屬性值得到對象。返回 id 屬性值等于 sID 的第一個(gè)對象的引用。假如對應的為一組對象,則返回該組對象中的第一個(gè)。
2、getElementsByName:getElementsByName(name)該方法與 getElementById() 方法相似,但是它查詢(xún)元素的 name 屬性,而不是 id 屬性。
另外,因為一個(gè)文檔中的 name 屬性可能不唯一(如 HTML 表單中的單選按鈕通常具有相同的 name 屬性),所以getElementsByName() 方法返回的是所有匹配元素組成的數組,而不是一個(gè)元素。
3、getElementsByTagName:getElementsByTagName() 方法會(huì )使用指定的標簽名返回所有的元素(作為一個(gè)節點(diǎn)列表),這些元素是您在使用此方法時(shí)所處的元素的后代。
getElementsByTagName() 可被用于任何的 HTML 元素
如果把特殊字符串 "*" 傳遞給 getElementsByTagName() 方法,它將返回文檔中所有元素的列表,元素排列的順序就是它們在文檔中的順序。
傳遞給 getElementsByTagName() 方法的字符串可以不區分大小寫(xiě)。
其一,沒(méi)有使用任用的輔助擴展庫
var1 = document.getElementById ("那個(gè)testbox的ID");//獲取該textbox對象
var test = var1.value; //取得其值
//test 就是你想要的值了
其二,使用輔助擴展庫,如jquery.js, 不過(guò)你得先引用這份擴展文件
如:<script type="text/javascript" src="/uploads/shbk/jquery.js"></script>
var test = $("#testbox的ID").val();
//test 就是你想要的值了
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:2.985秒