国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS進階篇--IE瀏覽器的ActiveXObject對象以及FileSystemobject的應用擴

OldPanda / 2784人閱讀

摘要:對象啟用和返回對自動化對象的引用。此對象僅用于實例化自動化對象,且此對象沒有成員。警告此對象為擴展,僅在中受支持,在應用商店應用中不受支持。提供對象的應用程序的名稱。要創建的對象的類型或類。對象在瀏覽器中實現文件的操作功能,還得需要對象。

ActiveXObject 對象

啟用和返回對自動化對象的引用。
此對象僅用于實例化自動化對象,且此對象沒有成員。

警告:此對象為 Microsoft 擴展,僅在 Internet Explorer 中受支持,在 Windows 8.x 應用商店應用中不受支持。

語法:

newObj = new ActiveXObject(servername.typename[, location])

參數:
newObj:必選。ActiveXObject 分配到的變量名稱。
servername:必選。提供對象的應用程序的名稱。
typename:必選。要創建的對象的類型或類。
location:可選。要在其中創建對象的網絡服務器的名稱。

備注
自動化服務器至少提供一種對象。 例如,字處理應用程序可能會提供應用程序對象、文檔對象和工具欄對象。

你可以在 HKEY_CLASSES_ROOT 注冊表項中標識宿主 PC 上的 servername.typename 值。 例如,下面是可在此處找到的幾個值示例,具體取決于安裝的程序:

Excel.Application

Excel.Chart

Scripting.FileSystemObject

WScript.Shell

Word.Document

注意:ActiveX 對象可能存在安全問題。 若要使用 ActiveXObject,你可能需要在相關安全區域的 Internet Explorer 中調整安全設置。 例如,對于本地 Intranet 區域,通常需要將自定義設置更改為“對沒有標記為安全的 ActiveX 控件進行初始化和腳本運行”。

若要創建自動化對象,請將新的 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代碼:

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代碼中寫就能實現,如:

如果限制上傳文件為圖片類型,如下:

但是在其它低版本瀏覽器就不管用了,需要js來判斷。
html代碼:

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/li...

JS、ActiveXObject、Scripting.FileSystemObject :http://www.cnblogs.com/dingji...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84371.html

相關文章

  • [ JS 進階 ] Ajax 詳解 (1) :XHR 對象

    摘要:下面來看下具體的對象有哪些屬性和方法。對象的屬性和方法屬性請求的狀態響應體不包括頭部對請求的響應,解析為并作為對象返回。方法取消當前響應,關閉連接并且結束任何未決的網絡活動。所以,調用對象的方法要有一定的順序,比如在方法注冊事件。 Ajax是一種能夠向服務器請求額外的數據而無需卸載頁面(無刷新)的技術,是對Asynchronous Javascript + XML的簡寫,因其良好...

    piglei 評論0 收藏0
  • JavaScript 進階知識 - Ajax

    摘要:注意事項以下版本要設置默認編碼,,否則程序可能無法正確顯示中文。組成部分協議是對請求和響應的報文內容進行了約束和規范。請求報文請求是由客戶端發起,其規范格式為請求行請求頭請求主體。 showImg(https://segmentfault.com/img/remote/1460000013696283?w=1920&h=1080); Ajax 前言 前面我們已經學習了js基礎知識和一些...

    Dongjie_Liu 評論0 收藏0
  • JavaScript 進階知識 - Ajax

    摘要:注意事項以下版本要設置默認編碼,,否則程序可能無法正確顯示中文。組成部分協議是對請求和響應的報文內容進行了約束和規范。請求報文請求是由客戶端發起,其規范格式為請求行請求頭請求主體。 showImg(https://segmentfault.com/img/remote/1460000013696283?w=1920&h=1080); Ajax 前言 前面我們已經學習了js基礎知識和一些...

    adie 評論0 收藏0
  • Ajax知識體系大梳理

    摘要:導讀全稱即異步與它最早在中被使用然后由推廣開來典型的代表應用有以及現代網頁中幾乎無不歡前后端分離也正是建立在異步通信的基礎之上瀏覽器為做了什么現代瀏覽器中雖然幾乎全部支持但它們的技術方案卻分為兩種標準瀏覽器通過對象實現了的功能只需要通過一行 導讀 Ajax 全稱 Asynchronous JavaScript and XML, 即異步JS與XML. 它最早在IE5中被使用, 然后由Mo...

    Aomine 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<