標籤:dex http asc types 大小 key 伺服器 .sh 磁碟機
ActiveXObject 對象
啟用和返回對Automation 物件的引用。
此對象僅用於執行個體化Automation 物件,且此對象沒有成員。
警告:此對象為 Microsoft 擴充,僅在 Internet Explorer 中受支援,在 Windows 8.x 市集應用中不受支援。
文法:
newObj = new ActiveXObject(servername.typename[, location])
參數:
newObj
:必選。ActiveXObject 分配到的變數名稱。
servername
:必選。提供對象的應用程式的名稱。
typename
:必選。要建立的對象的類型或類。
location
:可選。要在其中建立對象的網路伺服器的名稱。
備忘
Automation 伺服程式至少提供一種對象。 例如,文書處理應用程式可能會提供應用程式物件、文檔對象和工具列對象。
你可以在 HKEY_CLASSES_ROOT 登錄機碼中標識宿主 PC 上的 servername.typename
值。 例如,下面是可在此處找到的幾個值樣本,具體取決於安裝的程式:
Excel.Application
Excel.Chart
Scripting.FileSystemObject
WScript.Shell
Word.Document
注意:ActiveX
對象可能存在安全問題。 若要使用 ActiveXObject,你可能需要在相關安全區域的 Internet Explorer 中調整安全設定。 例如,對於本地 Intranet 地區,通常需要將自訂設定更改為“對沒有標記為安全的 ActiveX 控制項進行初始化和指令碼運行
”。
若要建立Automation 物件,請將新的 ActiveXObject 分配給物件變數:
var ExcelApp = new ActiveXObject("Excel.Application");var ExcelSheet = new ActiveXObject("Excel.Sheet");
此代碼啟動建立對象的應用程式(在此樣本中,為 Microsoft Excel 工作表)。 在建立某個對象後,可在代碼中使用已定義的物件變數引用該對象。 在下面的樣本中,使用物件變數 ExcelSheet 和其他 Excel 對象(包括應用程式物件和 ActiveSheet.Cells 集合)來訪問新對象的屬性和方法。
// Make Excel visible through the Application object.ExcelSheet.Application.Visible = true;// Place some text in the first cell of the sheet.ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";// Save the sheet.ExcelSheet.SaveAs("C:\\TEST.XLS");// Close Excel with the Quit method on the Application object.ExcelSheet.Application.Quit();
要求
在以下文檔模式中受支援:Quirks、Internet Explorer 6 標準、Internet Explorer 7 標準、Internet Explorer 8 標準、Internet Explorer 9 標準、Internet Explorer 10 標準和 Internet Explorer 11 標準。 在 Windows 8.x 市集應用中不受支援。
FileSystemObject 對象
在IE瀏覽器中實現檔案的操作功能,還得需要FileSystemobject
對象。
使用FileSystemObject
對象進行編程很簡單,一般要經過如下的步驟: 建立FileSystemObject
對象、應用相關方法、訪問對象相關屬性 。
建立FileSystemObject對象
var fso = new ActiveXObject("Scripting.FileSystemObject");
上述代碼執行後,fso就成為一個FileSystemObject對象執行個體。
應用相關方法
建立對象執行個體後,就可以使用對象的相關方法了。比如,使用CreateTextFile
方法建立一個文字檔:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.createtextfile("c:\myjstest.txt",true");
訪問對象相關屬性
要訪問對象的相關屬性,首先要建立指向對象的控制代碼,這就要通過get系列方法實現:GetDrive
負責擷取磁碟機資訊,GetFolder
負責擷取檔案夾資訊,GetFile
負責擷取檔案資訊。比如,指向下面的代碼後,f1就成為指向檔案c: est.txt的控制代碼:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.GetFile("c:\myjstest.txt");
然後,使用f1訪問對象的相關屬性。比如:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.GetFile("c:\myjstest.txt"); alert("File last modified: " + f1.DateLastModified);
但有一點請注意:對於使用create方法建立的對象,就不必再使用get方法擷取物件控點了,這時直接使用create方法建立的控制代碼名稱就可以:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.createtextfile("c:\myjstest.txt",true"); alert("File last modified: " + f1.DateLastModified);
執行個體1.擷取上傳檔案的大小
html代碼:
<input type="file" id="filePath" onchange="getFileSize(this)"/>
js代碼:
//相容IE9低版本擷取檔案的大小function getFileSize(obj){ var filesize; if(obj.files){ filesize = obj.files[0].size; }else{ try{ var path,fso; path = document.getElementById(‘filePath‘).value; fso = new ActiveXObject("Scripting.FileSystemObject"); filesize = fso.GetFile(path).size; } catch(e){ //在IE9及低版本瀏覽器,如果不容許ActiveX控制項與頁面互動,點擊了否,就無法擷取size console.log(e.message); //Automation 伺服器不能建立對象 filesize = ‘error‘; //無法擷取 } } return filesize;}
2.限制上傳檔案的類型
如果是高版本瀏覽器,一般在HTML代碼中寫就能實現,如:
<input type="file" name="filePath" accept=".jpg,.jpeg,.doc,.docxs,.pdf">
如果限制上傳檔案為圖片類型,如下:
<input type="file" class="file" value="上傳" accept="image/*"/>
但是在其它低版本瀏覽器就不管用了,需要js來判斷。
html代碼:
<input type="file" id="filePath" onchange="limitTypes()"/>
js代碼:
/* 通過副檔名,檢驗檔案格式。 *@parma filePath{string} 檔案路徑 *@parma acceptFormat{Array} 允許的檔案類型 *@result 傳回值{Boolen}:true or false */function checkFormat(filePath,acceptFormat){ var resultBool= false, ex = filePath.substring(filePath.lastIndexOf(‘.‘) + 1); ex = ex.toLowerCase(); for(var i = 0; i < acceptFormat.length; i++){ if(acceptFormat[i] == ex){ resultBool = true; break; } } return resultBool;}; function limitTypes(){ var obj = document.getElementById(‘filePath‘); var path = obj.value; var result = checkFormat(path,[‘bmp‘,‘jpg‘,‘jpeg‘,‘png‘]); if(!result){ alert(‘上傳類型錯誤,請重新上傳‘); obj.value = ‘‘; }}
註:當然這個執行個體2在這兒沒有用到上面的知識,只是根據執行個體1聯想到了。
參考
ActiveXObject 對象 (JavaScript):https://msdn.microsoft.com/library/7sw4ddf8(v=vs.94).aspx
JS、ActiveXObject、Scripting.FileSystemObject:http://www.cnblogs.com/dingjiaoyang/p/5831056.html
js與IE瀏覽器的ActiveXObject對象以及FileSystemobject的應用擴充