Javascript - 自建批处理文件下载提示

Javascript - Download prompting of self created batch files

我是 javascript 的菜鸟,所以如果我的问题很简单,我很抱歉。无论如何, 我正在编写一个创建批处理文件的代码,以便在操作系统定义的默认应用程序中打开某个文件。例如,pdf 文件将在 Adob​​e 的 Acrobat Reader 中打开。为此,我使用 FileSaver.js

我的代码是这样的:

$(document).ready(function() {
    $('#openPdf').click(function() {
        saveAs(data2blob(
                myPDF), 
            'openPDF.bat');
    });
});

function data2blob(data, isBase64) {
    var chars = "";
    if (isBase64)
        chars = atob(data);
    else
        chars = data;

    var bytes = new Array(chars.length);
    for (var i = 0; i < chars.length; i++)
        bytes[i] = chars.charCodeAt(i);
    var blob = new Blob([new Uint8Array(bytes)], 
            {type: "text/plain;charset=utf-8"});
    return blob;
}

其中 myPDF 是我要打开的特定文件的字符串,我确定它存在。当我在 IE 上测试我的代码时,它运行良好。但是,当我在 Firefox 上尝试时,创建的文件是 'openPDF.bat.sdx' 而不是 'openPDF.bat'。我检查过它确实是同一个文件,只是添加了扩展名。有谁知道这是什么原因?我该如何克服它?

我终于成功地在 Firefox 中以与在 IE 中相同的方式下载了文件。我对代码做了一个小改动:在 data2blob 函数中创建 blob 变量时,我使用了:

var blob = new Blob([new Uint8Array(bytes)], {type: "application/octet-stream"});

不确定,以前的样子和现在的样子有什么区别,当然除了结果。