很可能我已经知道答案,但你永远不知道(突然间我什么都不知道了)。有一个javascript页面。使用 javascript,我形成了一个 html 页面,用户将其保存(使用 javascript)作为 doc 文件在他的计算机上,然后打开它。该函数是这样的(从工作代码中撕下一块):
var saveData = (function () {
var a = document.createElement('a');
document.body.appendChild(a);
a.style = 'display: none';
return function (data, fileName) {
var content = data,
blob = new Blob([content], {type: 'application/msword'}),
url = window.URL.createObjectURL(blob);
if (window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {
a.href = url;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(url);
a.remove();
}
};
}());
var data = doc_file;
var fileName = 'Направление.doc';
saveData(data, fileName);
有什么方法可以确保文件没有保存在用户的计算机上,而是启动 Word 并将文本传输到它?这在 Internet Explorer(在 Chromium 中)中不起作用,因此 ActiveX 在此处不起作用。问题是创建了很多文件(当您在程序中工作时),加上“保存”和“打开”的额外动作 - 操作员的工作时间至关重要。我想这是不可能的,但你永远不知道,也许有一些棘手的方法?
感谢 Stepan Kasyanenko(在评论中)的想法!我创建了一个蝙蝠昵称,它每秒监视某个文件的存在,然后尝试重命名它(如果它不能重命名它,那么该文件仍在忙于创建它),然后我将它移动到“复制”文件夹和从那里我开始它,在那个监视器源文件夹之后继续。