none
兼容IE8及以下版本的上传附件校验格式和大小JS RRS feed

  • 问题

  • 上传文件校验大小时使用jQuery.validator.addMethod方法时,由于IE没有files[0]属性导致报错,所以针对IE浏览器改成了上述使用FileSystemObject的方式,文件上传IE8执行时new ActiveXObject("Scripting.FileSystemObject")无法创建对象,代码如下:

                                                   var isIE = /msie/i.test(navigator.userAgent) && !window.opera;    
         var fileSize = 0;          
         if (isIE && !element.files) {      
            var filePath = element.value;
            var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
            var file = fileSystem.GetFile(filePath);      
            fileSize = file.Size;     
        } 
    上述第五行无法创建对象,
    IE浏览器->工具->Internet选项->安全->自定义级别->设置

    ->“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”设置为启用,这种方式试过了,没有效果
    2017年8月4日 2:20

全部回复

  • 你好,

    ->“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”设置为启用,这种方式试过了,没有效果

    你可以再尝试编辑对应的注册表,首先在注册表中找到HKEY_CLASSES_ROOT,然后找到你想要使用的控件的GUID, Scripting.FileSystemObject 的GUID应该是({0D43FE01-F093-11CF-8940-00A0C9054228})。然后在注册表文件中添加以下内容。

    [HKEY_CLASSES_ROOT\CLSID\{GUID HERE}\Implemented Categories]
    
    [HKEY_CLASSES_ROOT\CLSID\{GUID HERE}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
    
    [HKEY_CLASSES_ROOT\CLSID\{GUID HERE}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
    参考链接(没有找到对应的中文链接,可以先看看英文的):https://msdn.microsoft.com/en-us/library/aa751977(VS.85).aspx


    2017年8月24日 9:58
    版主