如何使用 pako.js javascript? Pako 未定义

问题描述 投票:0回答:3

我对 JavaScript 还很陌生。我目前正在研究一种在 Java 中 deflate 并在 javascript 中 inflate 的算法。在大多数情况下,我听说 pako.js 是一个很好的解压工具,但我在实现它时遇到了问题。我在 JavaScript 中创建了一个函数,它将 base64 字符串作为参数传递。

function decompressHtml(html){

                var compressedData = atob(html);
                var charData = compressedData.split('').map(function(x){return x.charCodeAt(0);});
                var binData = new Uint8Array(charData);
                var inflated = '';


                try {
                  inflated = pako.inflate(binData);

                } catch (err) {
                  console.log(err);
                }

                return inflated;

        }

它总是返回一个错误,指出 pako 没有正确定义。是否需要插入特定的脚本标签才能定义 pako?我意识到这可能是一个简单的问题,但我不确定答案。

javascript html zlib compression
3个回答
11
投票
  1. 官方 pako github 页面
  2. 下载 pako.js 或 pako.min.js
  3. 将下载的文件包含在您的 html 中,如下所示:

    <script type="text/javascript" src="pako.js"></script>

示例代码:

var input = "test string";
var output = pako.gzip(input,{ to: 'string' });
alert("compressed gzip string - " + output);
var originalInput = pako.ungzip(output,{ to: 'string' });
alert("uncompressed string - " + originalInput);

3
投票

这会对你有帮助

解压

const input = new Uint8Array(res);
const restored = JSON.parse(pako.inflate(input, { to: 'string'}));
console.log(restored)

压缩

const input = new Uint8Array(res);
const output = pako.deflate(input);
console.log(output)

0
投票

Pako 期望绑定到名为

global
的对象,该对象(从 Chrome 118 开始)在浏览器中未定义。您可以创建
global
对象,并通过将其放入脚本中 Pako 脚本标记之前的某个位置来让 Pako 满意。

if (!window.global) window.global = window;
© www.soinside.com 2019 - 2024. All rights reserved.