【问题标题】:ActiveXObject is not defined and can't find variable: ActiveXObject [duplicate]ActiveXObject 未定义且找不到变量:ActiveXObject [重复]
【发布时间】:2012-06-21 12:46:17
【问题描述】:

我想在本地创建文本文件,当我在 Google chrome 中浏览时单击按钮,它显示错误,如 ActiveXObject 未定义,当我在 safari 中浏览时单击按钮显示 can't find variable: ActiveXObject 之类的错误。任何人都可以帮助我。我怎样才能实现和创建文件.Thanq

<script>
      function createFile() {    
      var object = new ActiveXObject("Scripting.FileSystemObject");       
      var file = object.CreateTextFile("C:\\Hello.txt", true);
      file.WriteLine('Hello World');
      alert('Filecreated');
      file.WriteLine('Hope is a thing with feathers, that perches on the soul.'); 
      file.Close();
      }
    </script>
<input type="Button" value="Create File" onClick='createFile()'>

【问题讨论】:

  • 即使在 IE 上,如果您从通过 HTTP 提供的页面执行此操作,您也会遇到安全问题。

标签: javascript sencha-touch-2


【解决方案1】:

网络应用可以通过调用window.requestFileSystem() 请求访问沙盒文件系统。在 Chrome 中工作。

window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
var fs = null;

window.requestFileSystem(window.TEMPORARY, 1024 * 1024, function (filesystem) {
    fs = filesystem;
}, errorHandler);

fs.root.getFile('Hello.txt', {
    create: true
}, null, errorHandler);

function errorHandler(e) {
  var msg = '';

  switch (e.code) {
    case FileError.QUOTA_EXCEEDED_ERR:
      msg = 'QUOTA_EXCEEDED_ERR';
      break;
    case FileError.NOT_FOUND_ERR:
      msg = 'NOT_FOUND_ERR';
      break;
    case FileError.SECURITY_ERR:
      msg = 'SECURITY_ERR';
      break;
    case FileError.INVALID_MODIFICATION_ERR:
      msg = 'INVALID_MODIFICATION_ERR';
      break;
    case FileError.INVALID_STATE_ERR:
      msg = 'INVALID_STATE_ERR';
      break;
    default:
      msg = 'Unknown Error';
      break;
  };

  console.log('Error: ' + msg);
}

更多信息here

【讨论】:

  • 感谢您的回复。我已经使用了您的代码..单击它给出的按钮。 errorHandler 未定义。我错过了什么?
【解决方案2】:

ActiveXObject 仅在 IE 浏览器上可用。所以其他所有的用户代理都会抛出一个错误

在现代浏览器上,您可以改用 File APIFile writer API(目前已实现 only on Chrome

【讨论】:

  • 文件 API 是只读的,所以你不能。
  • 好的,我改进了答案,谢谢。
【解决方案3】:

ActiveXObject 是非标准的,仅受 Windows 上的 Internet Explorer 支持。

没有使用插件的本地跨浏览器写入文件系统的方式,即使草案File API 提供只读访问权限。

如果您想跨平台工作,那么您需要查看诸如已签名的 Java 小程序之类的东西(请记住,这仅适用于 Java 运行时可用的平台)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    相关资源
    最近更新 更多